如何删除并显示列表中有字符串重复?

时间:2016-02-28 08:38:12

标签: python string list repeat

如果我不断添加用户输入的字符串。如何将字符串添加到列表中,内容已经在里面?

x = 4
y = 9
repeatList = []
abc = str(x)+str(y)
repeatList.append(abc)
x = 3
y = 2
abc = str(x)+str(y)
repeatList.append(abc)
x = 4
y = 9
abc = str(x)+str(y)
repeatList.append(abc)
print(repeatList)

给出一个输出:

['49', '32', '49']

所需的输出为['49','32'],并显示消息"您已输入' 49'已经&#34。

请注意在实际代码中我们没有为int分配变量,相反,我们允许玩家输入,如果他们之前已经写过,我们就让他们知道他们输入了相同的输入他们仍然失去了一个“动作”。

3 个答案:

答案 0 :(得分:2)

假设您要将变量x插入列表,请检查:

if x in lst:
    print ("You have inputted", x, "already.")
else:
    lst.append(x)

答案 1 :(得分:0)

x = 4
y = 9
repeatList = []
if str(x)+str(y) not in repeatList:
    repeatList.append(str(x)+str(y))
else:
     print('You have inputted {0} already.'.format(str(x)+str(y)))

x = 3
y = 2
if str(x)+str(y) not in repeatList:
    repeatList.append(str(x)+str(y))
else:
     print('You have inputted {0} already.'.format(str(x)+str(y)))
x = 4
y = 9
if str(x)+str(y) not in repeatList:
    repeatList.append(str(x)+str(y))
else:
     print('You have inputted {0} already.'.format(str(x)+str(y)))
print(repeatList)

输出:

You have inputted 49 already.
['49', '32']

答案 2 :(得分:0)

除了@idos已经说过的话:
如果您对插入顺序不感兴趣,并且您添加的对象为hashable,则可以使用set,其中faster performance than lists检查元素是否已在内部它

>>> s = set()
>>> s.add(49)
>>> s
set([49])
>>> s.add(32)
>>> s
set([32, 49])
>>> s.add(49)
>>> s
set([32, 49])
>>> s.add('49')
>>> s
set([32, 49, '49'])