簡體   English   中英

將列表列表轉換為元組列表

[英]Converting a list of lists to a list of tuples

我有一個清單清單:

[['AB', '132'], ['C D'], ['EFG'], ['HJ K', '2  1']]  

我正在嘗試將其轉換為元組列表:

[('AB', '132'), ('C D', ''), ('EFG', ''), ('HJ K', '2  1')]

極其簡單,只需使用列表推導就可以將源項目直接傳遞給內置的元組,從而遍歷源列表並將每個元素轉換為元tuple

>>> example = [['AB', '132'], ['C D'], ['EFG'], ['HJ K', '2 1']]
>>> [tuple(i) for i in example]
[('AB', '132'), ('C D',), ('EFG',), ('HJ K', '2 1')]

另外,如果您喜歡函數式編程,請改用map

>>> map(tuple, example)
[('AB', '132'), ('C D',), ('EFG',), ('HJ K', '2 1')]

列表推導會將列表中的每個元素轉換為元組:

data = [['AB', '132'], ['C D'], ['EFG'], ['HJ K', '2 1']]
[tuple(elem) for elem in data]

給出:

[('AB', '132'), ('C D',), ('EFG',), ('HJ K', '2 1')]

一種可能性是使用map(tuple, l)

In [1]: l=[['AB', '132'], ['C D'], ['EFG'], ['HJ K', '2  1']]  

In [2]: map(tuple, l)
Out[2]: [('AB', '132'), ('C D',), ('EFG',), ('HJ K', '2  1')]

缺點是在Python 3中,這將返回一個可迭代的列表,而不是列表。 如果必須要有一個列表,則需要將其拼寫為list(map(tuple, l)) (這在Python 2和3中都適用)。

在Python 2和3中都可以使用的另一種方法是使用列表理解:

[tuple(x) for x in l]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM