繁体   English   中英

按特定索引检查元组列表中是否存在字符串

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM