我有以下包含多個元素的串列串列:
list = [[1633425661439, 0.11643042583898743],
[1633428739018, 0.11682454707026001],
[1633432086311, 0.11950356856187618]]
我想分別用每個串列中的第一個和第二個數字填充 anew_list1和new_list2,產生:
new_list1 = [1633425661439,
1633428739018,
1633432086311]
和:
new_list2 = [0.11643042583898743,
0.11682454707026001,
0.11950356856187618]
我試過:
for n in list:
for i in n:
new_list1.append(i[0])
new_list2.append(i[1])
但得到: TypeError: 'int' object is not subscriptable
uj5u.com熱心網友回復:
你可以這樣轉置它:
lst = [[1633425661439, 0.11643042583898743],
[1633428739018, 0.11682454707026001],
[1633432086311, 0.11950356856187618]]
new_list_1, new_list_2 = map(list, zip(*lst))
如果您可以使用元組而不是串列,則可以執行以下操作:
new_list_1, new_list_2 = zip(*lst)
你真的不應該命名一個變數list。它隱藏了內置型別。
您還可以使用簡單的推導式:
new_list_1 = [a for a, _ in lst]
new_list_2 = [a for _, a in lst]
一些檔案:
mapzip
uj5u.com熱心網友回復:
你可以試試
list_ = [[1633425661439, 0.11643042583898743],
[1633428739018, 0.11682454707026001],
[1633432086311, 0.11950356856187618]]
list_a = [first[0] for first in list_]
list_b = [first[1] for first in list_]
另一種方式
new_list1 = []
new_list2 = []
for inner_list in list_:
new_list1.append(inner_list[0])
new_list2.append(inner_list[1])
uj5u.com熱心網友回復:
你的一層嵌套太多了,這會
for n in list:
for i in n:
print(i)
將列印單個元素,即數字,你需要做
for n in list:
new_list1.append(n[0])
new_list2.append(n[1])
作為旁注,請避免使用,list因為它已在python. 掩蓋它可能會導致意外行為,您可以使用lst名稱即:
lst = [[1,2],[3,4],[5,6]]
new_lst1 = []
new_lst2 = []
for n in lst:
new_lst1.append(n[0])
new_lst2.append(n[1])
print(new_lst1)
print(new_lst2)
輸出
[1, 3, 5]
[2, 4, 6]
uj5u.com熱心網友回復:
您可以在 for 回圈本身中解壓第一個和第二個數字。(順便說一句,最好不要呼叫變數“list”,因為它與 python 內置程式相同)
list_ = [[1633425661439, 0.11643042583898743],
[1633428739018, 0.11682454707026001],
[1633432086311, 0.11950356856187618]]
new_list1 = []
new_list2 = []
for (i, j) in l:
new_list1.append(i)
new_list2.append(j)
uj5u.com熱心網友回復:
繼PEP-8的代碼風格指南,請不要用名字保留關鍵字喜歡的變數
list,dict,for,等。在第二個回圈中,您可以遍歷
int內部串列中的數字。如果您只需要使用每個串列的前 2 個元素,一個回圈就足夠了:
list_ = [
[1633425661439, 0.11643042583898743],
[1633428739018, 0.11682454707026001],
[1633432086311, 0.11950356856187618]]
for inner_list in list_:
new_list1.append(inner_list[0])
new_list2.append(inner_list[1])
uj5u.com熱心網友回復:
list= [[1633425661439, 0.11643042583898743], [1633428739018, 0.11682454707026001], [1633432086311, 0.11950356856187618]]
new_list1 = [ ]
new_list2 = [ ]
for inner_list in list:
new_list1.append(inner_list[0])
new_list2.append(inner_list[1])
print(new_list1)
print(new_list2)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/324521.html
下一篇:回圈未列印預期結果
