2017-04-08 97 views
2

我有這樣的二進制數的列表:Python:如何轉換嵌套列表中的數字列表?

['11100', '11010', '11001', '10110', '10101', '10011', '01110', '01101', '01011', '00111'] 

是否有創建包含在其中元素是bynary數目的單個數字的子列表的嵌套列表的方法?

new_list = [[1, 1, 1, 0, 0], [1, 1, 0, 1, 0], [1, 1, 0, 0, 1], [1, 0, 1, 1, 0], [1, 0, 1, 0, 1], [1, 0, 0, 1, 1], [0, 1, 1, 1, 0], [0, 1, 1, 0, 1], [0, 1, 0, 1, 1], [0, 0, 1, 1, 1]] 

在此先感謝!

+0

在大多數情況下,你已經可以把它這樣,作爲一個字符串是一個可以迭代的序列。 – TemporalWolf

回答

4

使用列表理解這樣

>>> l = ['11100', '11010', '11001', '10110', 
    '10101', '10011', '01110', '01101', 
    '01011', '00111'] 

>>> new_list = [[int(i) for i in j] for j in l] 

>>> print(new_list) 
[[1, 1, 1, 0, 0], 
[1, 1, 0, 1, 0], 
[1, 1, 0, 0, 1], 
[1, 0, 1, 1, 0], 
[1, 0, 1, 0, 1], 
[1, 0, 0, 1, 1], 
[0, 1, 1, 1, 0], 
[0, 1, 1, 0, 1], 
[0, 1, 0, 1, 1], 
[0, 0, 1, 1, 1]] 
+0

謝謝!很好的回答! – killua

1

另一種可能的解決方案,這是一個:

oldlist = ['11100', '11010', '11001', '10110', '10101', '10011', '01110', '01101', '01011', '00111'] 
newlist = [list(map(int,list(x))) for x in oldlist] 
print(newlist) 

而且給出了這樣的輸出:

[[1, 1, 1, 0, 0], [1, 1, 0, 1, 0], [1, 1, 0, 0, 1], [1, 0, 1, 1, 0], [1, 0, 1, 0, 1], [1, 0, 0, 1, 1], [0, 1, 1, 1, 0], [0, 1, 1, 0, 1], [0, 1, 0, 1, 1], [0, 0, 1, 1, 1]] 
+0

坦克你!非常好的答案! – killua