Python I';我试图创建一个程序,将2(用户)输入转换为列表,然后在列表中打印重复项
出于某种原因,程序打印副本,但不是全部。 例如,如果Python I';我试图创建一个程序,将2(用户)输入转换为列表,然后在列表中打印重复项,python,python-3.x,Python,Python 3.x,出于某种原因,程序打印副本,但不是全部。 例如,如果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.ap
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
时,它已经出现在重复项列表中,因此如果我不在重复项中:
将计算为假,并且最后一个t
不会添加到重复项列表中
相反,对于重复逻辑,您应该检查x
中的字符是否存在于y
中,如果存在,则将其添加到duplicates
列表中,而且您不需要将字符串
转换为列表
,而是可以直接对字符进行迭代
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]