簡體   English   中英

如何在python中拆分列表

[英]How do I split the lists in python

假設我有一個列表['x1_0','x2_1','x3_0']如何將上面的列表拆分為兩個列表,使得第一個列表包含['x1','x2','x3']和第二個列表列表[0,1,0]

         ('x1_0')
         /    \
        /      \
       /        \
     1st list   2nd list
      'x1'          0

隨意使用盡可能多的工具。 這顯然可以在一個for循環中完成,我知道。 有一個更好的方法嗎 ?。 使用列表理解的東西? 阿爾斯

您可以使用zip和列表理解:

>>> zip(*[i.split('_') for i in l])
[('x1', 'x2', 'x3'), ('0', '1', '0')]

如果要將第二個元組的元素轉換為int,可以使用以下嵌套列表推導:

>>> [[int(i) if i.isdigit() else i for i in tup] for tup in zip(*[i.split('_') for i in l])]
[['x1', 'x2', 'x3'], [0, 1, 0]]

前面的方法是執行此任務的正確方法,但是正如您在注釋中所說的那樣,可以使用map作為較小的解決方案:

>>> l=[l[0],map(int,l[1])]
>>> l
[('x1', 'x2', 'x3'), [0, 1, 0]]
k=["x1_0","x2_1","x3_0"]
k1=[x.split("_")[0] for x in k]
k2=[int(x.split("_")[1]) for x in k]

你可以這樣做。

暫無
暫無

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

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