事前に申し訳ありませんが、私はPythonが初めてです。 tuples
のリストがあり、リスト内の各Tuple
の最初の要素をどのように参照できるのか疑問に思っていました。私はそれが次のようなものだと思うだろう
for i in number_of_tuples :
first_element = myList[i[0]]
ええと、 [list_element[Tuple_element]]
?ただし、これは正しいアプローチではないようです。どんな助けも大歓迎です。
おかげで、
ターナー
ここでの他の答えはすべて正しいですが、あなたがしようとしていたことが間違っていた理由を説明していません。 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
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']
コード
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]
のではなく:
first_element = myList[i[0]]
おそらくあなたは:
first_element = myList[i][0]
itemgetter 演算子も使用できます。
from operator import itemgetter
my_tuples = [('c','r'), (2, 3), ('e'), (True, False),('text','sample')]
map(itemgetter(0), my_tuples)
したがって、「タプルのリスト」があり、2次元のマトリックスを操作していると仮定しましょう。この場合、必要なことを達成するための便利なインターフェイスはnumpy
が提供するものです。
配列arr = numpy.array([[1, 2], [3, 4], [5, 6]])
があるとすると、arr[:, 0]
各「タプル」のすべての最初の要素の新しい配列を取得します。
以下に簡単な例を示します。
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)