35

以下を返す最もコンパクトな方法は何ですか。

タプルのリストを指定して、最初の(または2番目の、重要ではない)要素で構成されるリストを返します。

にとって:

[(1,'one'),(2,'two'),(3,'three')]

返されるリストは

[1,2,3]
4

5 に答える 5

51

両方が必要な場合はzipを使用してください

>>> r=(1,'one'),(2,'two'),(3,'three')
>>> zip(*r)
[(1, 2, 3), ('one', 'two', 'three')]
于 2012-05-24T10:12:14.570 に答える
39
>>> tl = [(1,'one'),(2,'two'),(3,'three')]
>>> [item[0] for item in tl]
[1, 2, 3]
于 2012-05-24T10:05:05.150 に答える
13
>>> mylist = [(1,'one'),(2,'two'),(3,'three')]
>>> [j for i,j in mylist]
['one', 'two', 'three']
>>> [i for i,j in mylist]
[1, 2, 3]

これはリスト内包表記を使用しています (このリンクを見てください)mylistそのため、 の要素、設定i、およびjタプルの 2 つの要素を順番に繰り返し処理します。これは実質的に次のものと同等です。

>>> newlist = []
>>> for i, j in mylist:
...     newlist.append(i)
... 
>>> newlist
[1, 2, 3]
于 2012-05-24T10:06:35.603 に答える
-2

これも試すことができます..

dict(my_list).keys()
于 2016-06-02T11:41:07.953 に答える