28
A
回答
53
40
@Le馮的解決方案完美適合您的情況。請注意,如果元組中的元素數量可變,您還可以使用從itertools
。
>>> a = [(1,), (2, 3), (4, 5, 6)]
>>> from itertools import chain
>>> list(chain(a))
[(1,), (2, 3), (4, 5, 6)]
>>> list(chain(*a))
[1, 2, 3, 4, 5, 6]
>>> list(chain.from_iterable(a)) # More efficient version than unpacking
[1, 2, 3, 4, 5, 6]
7
19
這裏是另一個選擇,如果你可以在元組可變數量的元素:
>>> a = [(1,), (2, 3), (4, 5, 6)]
>>> [x for t in a for x in t]
[1, 2, 3, 4, 5, 6]
這基本上是一個縮短形式的下列循環:
result = []
for t in a:
for x in t:
result.append(x)
+0
最好的答案,精美簡潔/一般化。但是這個語法非常令人費解。最後一個「for」陳述類似於在列表理解上的尾隨「if」陳述,例如'[我爲我在範圍內(10)如果我%2 == 0]'?我對後者很熟悉。 –
1
你也可以解包列表理解的元組:
e = [(1,), (2,), (3,)]
[i for (i,) in e]
還是會給予:
[1, 2, 3]
3
總是有辦法通過從另一個列表中提取列表... for
... in
...。在這種情況下,這將是:
[i[0] for i in e]
3
您還可以使用sum
功能如下:
e = [(1,), (2,), (3,)]
e_list = list(sum(e,()))
而且它也列出的清單工程將其轉換成一個列表,但你需要使用它如下:
e = [[1, 2], [3, 4], [5, 6]]
e_list = list(sum(e, []))
這會給你[1, 2, 3, 4, 5, 6]
0
One Liner喲!
list(*zip(*[(1,), (2,), (3,)]))
1
>>> a = [(1,), (2,), (3,)]
>>> b = map(lambda x: x[0], a)
>>> b
[1, 2, 3]
這是在使用python內置函數
0
使用操作員或總結
>>> import operator
>>> a = [(1,), (2,), (3,)]
>>> list(reduce(operator.concat, a))
[1, 2, 3]
(OR)
>>> list(sum(a,()))
[1, 2, 3]
>>>
一行的最佳解決方案
相關問題
- 1. 將轉換列表轉換爲水星中的元組列表
- 2. 將元組轉換爲元素列表
- 3. 將字符串元組列表轉換爲元組列表
- 4. F Sharp將元組列表轉換爲映射元組列表
- 5. Python:將列表列表轉換爲元組元組
- 6. 將元組列表轉換爲遞歸列表元組
- 7. 將元組列表轉換爲列表列表
- 8. Python將列表列表轉換爲元組列表
- 9. Python將列表的列表轉換爲元組列表
- 10. 嘗試將元組列表轉換爲列表列表
- 11. 將元組列表轉換爲字典
- 12. 將列表轉換爲元組
- 13. 將元組轉換爲列表
- 14. 將列表轉換爲元組
- 15. 將列表項目轉換爲元組
- 16. 從元組列表轉換爲列表元組
- 17. 將元組轉換爲列表中的列表
- 18. Python - SqlAlchemy:將元組列表轉換爲原子值列表
- 19. 將列表轉換爲元組列表C#
- 20. 如何將列表轉換爲元組列表?
- 21. 將元組列表轉換爲Python中的多個列表
- 22. Python將元組列表轉換爲嵌套字典列表
- 23. 使用Python將元組列表轉換爲嵌套列表
- 24. 將項目列表轉換爲項目元組列表
- 25. 將整數列表轉換爲列表元組
- 26. Python:將列表元組的嵌套列表轉換爲字典?
- 27. 將元組列表轉換爲列表的元組(查詢將對象設置爲列表)?
- 28. 將列表數組轉換爲表
- 29. 如何將元素列表轉換爲列表列表
- 30. 將列表元素轉換爲列表的列表
可能重複[python - 獲取元組第一個索引?](https://stackoverflow.com/questions/10735282/python-get-list-of-tuples-first-index) –