0

したがって、それぞれ3つの要素を持つタプルのリストがあります。2番目と3番目の要素は両方ともintです。値nの場合、2番目または3番目の要素としてnを含むすべてのタプルを返す必要があります。

残念ながら、これを行う方法が完全にはわかりません。それほど複雑ではないと思いますが、似たような質問がいくつかありますが、この正確な問題については何も見つかりません。誰かがこれについて行く方法を知っていますか?

ありがとう

4

3 に答える 3

3

単純なリスト内包表記でこれを行うことができるはずです。何かのようなもの:

[t for t in list_of_tuples if t[1] == n or t[2] == n]
于 2013-03-14T23:28:00.433 に答える
1

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)]
于 2013-03-14T23:27:43.987 に答える
0
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

于 2013-03-14T23:51:52.600 に答える