当其中一个元素未知时,检查列表元素是否在列表中

时间:2015-04-07 23:28:55

标签: python arrays python-2.7

假设我有一个如下列表。

n = [[1, 3, "String1"], [3, 2, "String2"]]

我想使用in检查列表中是否有一个元素。我的问题是我不知道元素的字符串元素是什么。我已经尝试了下面的内容,但它没有用。

import types

# Collection of data
data = [[1, 3, "String1"], [3, 2, "String2"]]

# Check to see if an element with two pre-
# determined numbers, and an unknown string
# exists.
assert [1, 3, types.StringType] in n

但这不起作用。我该怎么做呢?

2 个答案:

答案 0 :(得分:1)

>>> data = [[1, 3, "String1"], [3, 2, "String2"]]
>>> class AnyString(str):
...     def __eq__(self, other):
...         return isinstance(other, str)
...     
>>> check = [1, 3, AnyString()]
>>> check in data
True

答案 1 :(得分:0)

我能想到的最简单的方式:

assert [1,3] in (l[0:2] for l in n)

或:

assert any([1,3] == l[0:2] for l in n)