在Python中按第n个元素搜索元组列表

2024-04-23 08:43:38 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我有一个元组列表,每个元组有3个元素。第二和第三个元素都是int。对于一个值n,我需要返回包含n的所有元组作为第二个或第三个元素。在

不幸的是,我不太清楚该怎么做。我相信这不是太复杂,但虽然有一些类似的问题,我找不到任何确切的问题。有人知道怎么做吗?在

谢谢


Tags: 元素列表int元组
3条回答

你应该能够用一个简单的列表理解来完成这个任务。比如:

[t for t in list_of_tuples if t[1] == n or t[2] == n]
blist = [tup for tup in alist if n in tup[1:]]

上面的一行使用list comprehension,相当于:

^{pr2}$

tup[1:]返回一个新的元组,由三项元组tup中的第二项和第三项组成。在

事后看来,James Henstridge's示例似乎更可取,因为t[1] == n or t[2] == n使用了现有的元组。在

在简单的if条件下使用列表理解:

>>> lis=[('a',1,2),('b',2,2),('c',3,3),('d',3,1)]

>>> n=1

>>> [x for x in lis if n in x[1:3]]  #[1:3] returns a sublist containing 
                                     # 2 & 3 element of each tuple
[('a', 1, 2), ('d', 3, 1)]

相关问题 更多 >