web-dev-qa-db-ja.com

タプルのリスト内の要素を参照する

事前に申し訳ありませんが、私はPythonが初めてです。 tuplesのリストがあり、リスト内の各Tupleの最初の要素をどのように参照できるのか疑問に思っていました。私はそれが次のようなものだと思うだろう

for i in number_of_tuples :
  first_element = myList[i[0]]

ええと、 [list_element[Tuple_element]]?ただし、これは正しいアプローチではないようです。どんな助けも大歓迎です。

おかげで、

ターナー

20
Turner Hughes

ここでの他の答えはすべて正しいですが、あなたがしようとしていたことが間違っていた理由を説明していません。 myList[i[0]] Python iはタプルであり、値またはタプルの最初の要素iをmyListのインデックスとして使用します。

大部分のプログラミング言語では、ネストされたデータ型(配列、リスト、タプルなど)にアクセスする必要がある場合、括弧を追加して最も内側の項目に到達します。最初の括弧は、リスト内のタプルの場所を示します。 2番目のブラケットは、タプル内のアイテムの場所を示します。

これは私が思いついた簡単な初歩的な例です:

info = [ ( 1, 2), (3, 4), (5, 6) ]

info[0][0] == 1
info[0][1] == 2
info[1][0] == 3
info[1][1] == 4
info[2][0] == 5
info[2][1] == 6
37

list comprehension を使用して、各タプルの最初の要素のリストを取得できます。

>>> my_tuples = [(1, 2, 3), ('a', 'b', 'c', 'd', 'e'), (True, False), 'qwerty']
>>> first_elts = [x[0] for x in my_tuples]
>>> first_elts
[1, 'a', True, 'q']
30
Matt Ball

コード

my_list = [(1, 2), (3, 4), (5, 6)]
for t in my_list:
    print t

プリント

(1, 2)
(3, 4)
(5, 6)

ループはmy_listを反復処理し、my_listの要素をtに次々に割り当てます。 my_listの要素はたまたまタプルなので、tは常にタプルになります。タプルtの最初の要素にアクセスするには、t[0]を使用します。

for t in my_list:
    print t[0]

リスト内の指定されたインデックスiにあるTupleの最初の要素にアクセスするには、次を使用できます。

print my_list[i][0]
4
Sven Marnach

のではなく:

first_element = myList[i[0]]

おそらくあなたは:

first_element = myList[i][0]
3
Edward Loper

itemgetter 演算子も使用できます。

from operator import itemgetter
my_tuples = [('c','r'), (2, 3), ('e'), (True, False),('text','sample')]
map(itemgetter(0), my_tuples)
3

したがって、「タプルのリスト」があり、2次元のマトリックスを操作していると仮定しましょう。この場合、必要なことを達成するための便利なインターフェイスはnumpyが提供するものです。

配列arr = numpy.array([[1, 2], [3, 4], [5, 6]])があるとすると、arr[:, 0]各「タプル」のすべての最初の要素の新しい配列を取得します。

1
satoru

以下に簡単な例を示します。

termList = []
termList.append(('term1', [1,2,3,4]))
termList.append(('term2', [5,6,7,8]))
termList.append(('term3', [9,10,11,12]))

result = [x[1] for x in termList if x[0] == 'term3']

print(result)
1
MateusR