したがって、それぞれ3つの要素を持つタプルのリストがあります。2番目と3番目の要素は両方ともintです。値nの場合、2番目または3番目の要素としてnを含むすべてのタプルを返す必要があります。
残念ながら、これを行う方法が完全にはわかりません。それほど複雑ではないと思いますが、似たような質問がいくつかありますが、この正確な問題については何も見つかりません。誰かがこれについて行く方法を知っていますか?
ありがとう
したがって、それぞれ3つの要素を持つタプルのリストがあります。2番目と3番目の要素は両方ともintです。値nの場合、2番目または3番目の要素として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:]]
上記の行はリスト内包表記を使用しており、次と同等です。
blist = []
for tup in alist:
if n in tup[1:]:
blist.append(tup)
tup[1:]
3 項目タプルの 2 番目と 3 番目の項目で構成される新しいタプルを返しますtup
。
後から考えると、既存のタプルを使用するため、 James Henstridge の例の方が好ましいと思われます。t[1] == n or t[2] == n