-2

我有一个列表 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, T1024] 我想检查值 1。但是如果我执行...

if list.__contains__(1):

然后我会得到1、10、T1024。有没有一种简单的方法可以做到这一点。也许使用某种类型的正则表达式。执行“包含”而不是“for”循环是否更快?

谢谢大家,

4

3 回答 3

4

不,你不会明白的。

首先,这是一个列表,而不是字典。

其次,您在此处发布的是一个 SyntaxError(除非T1024碰巧是您之前定义的对象的名称)。

另外,正确的成语是

if 1 in mylist:

最后,不要list用作变量名。


如果您像这样定义列表,您将得到您所看到的结果:

mylist = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "T1024"]

如果你检查过"1"这样的:

for item in mylist:
    if "1" in item:
        print item

因为in运算符在应用于字符串时会检查子字符串。

于 2012-09-12T07:15:55.650 回答
3

您可以使用in运算符检查列表成员资格:

if 1 in list:

此外,您应该清楚列表(您所拥有的 - 值的有序集合)和字典(键值对的无序集合)之间的区别

于 2012-09-12T07:17:08.410 回答
1

你说的是字典是一个列表,要检查列表中的给定值,我会这样做:

if 1 in myList:
    doSomething
else:
    doSomethingElse
于 2012-09-12T07:15:59.777 回答