[英]Check for the existence of a string in a list of tuples by specific index
如果我有:
my_list = [('foo', 'bar'), ('floo', 'blar')]
如何轻松测试某个字符串是否位于任何这些元组的第一个元素中?
就像是:
if 'foo' in my_list
我们只是检查列表中每个元组的第一个元素?
如果您只想检查每个元组中的第一项:
if 'foo' in (item[0] for item in my_list)
或者:
if any('foo' == item[0] for item in my_list)
您可以先提取仅包含第一项的列表,然后执行检查:
>>> my_list = [('foo', 'bar'), ('floo', 'blar')]
>>> 'foo' in list(zip(*my_list))[0]
True
或者:
>>> 'foo' in next(zip(*my_list))
True
使用电池:
import operator
if 'foo' in map(operator.itemgetter(0), my_list):
这不会创建列表的副本,并且应该是最快的。
if 'foo' in map(lambda x: x[0], my_list):
<do something>
map
获取列表中的每个元素,对其应用函数,并返回结果列表。 在这种情况下,该函数是一个 lambda 函数,它只返回原始元素的第一个子元素。
((0,1),(3,4))
变成(0,3)
。
my_list = iter(my_list)
result = False
while True:
try:
x, y = my_list.next()
if x == 'foo':
result = True
break
except StopIteration:
break
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.