所以我有一個元組列表,每個元組都有3個元素。第二和第三個元素都是整數。對於值n,我需要返回所有包含n的元組作爲第二個或第三個元素。按Python中第n個元素搜索元組列表
不幸的是,我不完全確定如何做到這一點。我相信這不是太複雜,但雖然也有類似的問題,但我無法找到任何確切的問題。有誰知道如何去做這件事?
感謝
所以我有一個元組列表,每個元組都有3個元素。第二和第三個元素都是整數。對於值n,我需要返回所有包含n的元組作爲第二個或第三個元素。按Python中第n個元素搜索元組列表
不幸的是,我不完全確定如何做到這一點。我相信這不是太複雜,但雖然也有類似的問題,但我無法找到任何確切的問題。有誰知道如何去做這件事?
感謝
你應該可以用一個簡單的列表理解來做到這一點。類似:
[t for t in list_of_tuples if 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)]
blist = [tup for tup in alist if n in tup[1:]]
線之上使用list comprehension,並且等同於:
blist = []
for tup in alist:
if n in tup[1:]:
blist.append(tup)
tup[1:]
返回一個新的元組,在三個項目元組,由第二項和第三項的tup
。
事後看來James Henstridge's示例似乎更可取,因爲t[1] == n or t[2] == n
使用了現有的元組。