我需要從一個包含串列的串列中將每個元素乘以 2。因此在另一個串列中創建 3 個新串列。
listao = [['lista1', 'agora', 'fui', 'a1'],
['lista2', '10', '30', 'v'],
['lista3', '5', '4', 'a3']]
輸出:
[['lista1', 'agora', 'fui', 'a1'],
['lista2', '10', '30', 'v'],
['lista3', '5', '4', 'a3']]
我正在使用這段代碼:
在這段代碼中,我得到了乘法的結果,但我不知道如何將串列分開。
novalista = []
for i in listao:
for j in i:
x = j*2
novalista.append(x)
輸出:
['lista1lista1', 'agoraagora', 'fuifui', 'a1a1', 'lista2lista2', '1010', '3030', 'vv', 'lista3lista3', '55', '44', 'a3a3']
但我需要這個結果:
[['lista1lista1', 'agoraagora', 'fuifui', 'a1a1'],
['lista2lista2', '1010', '3030', 'vv'],
['lista3lista3', '55', '44', 'a3a3']]
uj5u.com熱心網友回復:
你可以這樣做:
novalista = []
for i in range(len(listao)):
novalista.append([])
for j in listao[i]:
x = j * 2
novalista[i].append(x)
我對其進行了更改,以便每次在listao變數中從一個串列轉換到另一個串列時附加一個串列
那應該作業
uj5u.com熱心網友回復:
您可以使用串列推導:
[[item * 2 for item in sublist] for sublist in listao]
這輸出:
[
['lista1lista1', 'agoraagora', 'fuifui', 'a1a1'],
['lista2lista2', '1010', '3030', 'vv'],
['lista3lista3', '55', '44', 'a3a3']
]
uj5u.com熱心網友回復:
對這個問題大聲笑,對第一條評論也有另一個問題。顯然,這份名單來自巴西。但無論如何。
不確定意圖是什么,但您需要了解的最重要方面是您正在回圈的內容。
外部 for (for i in listao) 您正在遍歷 listao 中包含的每個串列。內部 for (for j in i) 您正在遍歷 listao 中包含的每個串列中的每個專案。
因此,如果我們將撰寫的代碼翻譯成有意義的英語,它會說“回圈遍歷每個串列,在每個串列上回圈遍歷每個專案,將其乘以 2 并將其附加到此串列中。”
與上一個答案類似,但不完全(在我看來),您需要在回圈中添加一個子元素,以便將該子元素而不是每個專案附加到主串列中。
new_listao = []
for item in listao:
sub_list = []
for element in item:
sub_list.append(element*2)
new_listao.append(sub_list)
在串列理解中可能有一種更 Pythonic 的方式來處理這個問題(如果你還沒有的話,請閱讀這個),但如果值得的話,需要一些思考。見機械豬的評論。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/477177.html
標籤:Python
上一篇:檢查輸入是否為浮點數
