簡體   English   中英

從python中的一個列表創建兩個列表?

[英]Create two lists from one list in python?

我有一個包含以逗號分隔的數字的字符串列表。 我想從中創建兩個整數列表。 那是:

l=["23,2","11,2","12,7"]

我想做的是:

l1=[23,11,12]
l2=[2,2,7]

我將不勝感激。

您可以使用zip

l=["23,2","11,2","12,7"]
l1, l2 = [list(d) for d in zip(*[[int(i) for i in c.split(',')] for c in l])]

輸出:

[23, 11, 12]
[2, 2, 7]

您是否可以使用zip()將其分解為逗號,然后map每個子字符串map到一個int,從而將其撕開呢?

l = ["23,2","11,2","12,7"]
l1, l2 = zip(*[map(int, x.split(',')) for x in l])
# l1 = (23, 11, 12)
# l2 = (2, 2, 7)

Ajax1234的方式非常Python化,無疑是最好的方式。 但是,如果這是該語言的新手,則可能更容易理解。 它使用拼接:

from itertools import chain

l=["23,2","11,2","12,7"]
l = [x.split(',') for x in l] #Split list elements by comma.
l = list(chain.from_iterable(l)) #Get rid of tuples.
list1 = l[::2] #Take every even indexed element, including 0.
list2 = l[1::2] #Takes every odd indexed element.

輸出:

[23, 11, 12]
[2, 2, 7]

是一個向誰解釋得更好的鏈接。

暫無
暫無

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

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