如何在列表Python中查找重复值

我想知道如何知道当用户输入值时,该值是否已存在于列表中.

例如;

lis = ['foo', 'boo', 'hoo']

用户输入:

'boo'

现在我的问题是如何告诉用户这个值已经存在于列表中.

解决方法:

使用in operator

>>> lis = ['foo', 'boo', 'hoo']
>>> 'boo' in lis
True
>>> 'zoo' in lis
False

您还可以使用lis.index,它将返回元素的索引.

>>> lis.index('boo')
1

如果找不到该元素,则会引发ValueError:

>>> lis.index('zoo')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: 'zoo' is not in list

UPDATE

正如Nick T评论的那样,如果您不关心物品的顺序,可以使用set

>>> lis = {'foo', 'boo', 'hoo'}  # set literal  == set(['foo', 'boo', 'hoo'])
>>> lis.add('foo')  # duplicated item is not added.
>>> lis
{'boo', 'hoo', 'foo'}
上一篇:java – 给定列表列表的唯一元素列表


下一篇:php – 为什么fputcsv会产生重复的列?