由于某种原因,程序会打印重复项,但不是全部。
例如,如果 list1 = 'test'
和 list2 = 'test'
则打印 ['t','e','s']
dublicates = []
x = input('type something : ')
y = input('type something again : ')
list1 = list(x)
list2 = list(y)
for i in list2:
if i not in dublicates:
dublicates.append(i)
print (dublicates)
end = input('press enter to exit')
最佳答案
您的初始逻辑不起作用,因为当它到达最后一个字符t
时,它已经存在于duplicates
列表中,因此如果我不在重复项:
被评估为 False
并且最后一个 t
不会添加到重复项
列表
对于重复的逻辑,您应该检查 x
中的字符是否存在于 y
中,如果存在,请将其添加到 重复的
列表,您也不需要将 string
转换为 list
而可以直接迭代字符
duplicates = []
x = input('type something : ')
y = input('type something again : ')
#Iterate through x
for i in x:
#For every character in x, check if it present in y
if i in y:
duplicates.append(i)
print(duplicates)
end = input('press enter to exit')
输出将是
type something : test
type something again : test
['t', 'e', 's', 't']
press enter to exit
获取重复项的类似列表理解方式是
duplicates = [ i for i in x if i in y]
关于python - 我正在尝试创建一个程序,将 2 个(用户)输入转换为列表,然后打印列表中的重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56098494/