簡體   English   中英

循環列表中的列表

[英]Looping over lists in list

我有兩個帶數字的列表。

newlist      = [506.5, 133.0, 11104.2]
totalcolumns = [9.2, 10024.5, 610.0, 1100.0]

我想循環遍歷兩個列表並以相同的方式格式化數字:

myformatlists = [newlist, totalcolumns]

for i in range(0,len(myformatlists)):
     myformatlists[i] = ['{0:,}'.format(x) for x in myformatlists[i]]
     myformatlists[i] = [regex.sub("\.0?$", "", x).replace(".", "_").replace(",", ".")

印花

print(str(myformatlists[i]) 

給出正確的新值

print(str(newlist))
print(str(totalcolumns))

仍然給出舊列表。
為什么我的for循環沒有將值分配給myformatlists [i]中的listname?

如何將for-loop的輸出分配給myformatlists中的列表?

myformatlists[i] = ['{0:,}'.format(x) for x in myformatlists[i]]

重新綁定myformatlists[i] ,它不會改變myformatlists的原始項目。

您可以使用切片表示法執行myformatlists[i]的就地更新:

myformatlists[i][:] = ['{0:,}'.format(x) for x in myformatlists[i]]

這將改變原始列表。

但請注意,由於列表理解不完整,重新編碼中存在x未定義的問題:

myformatlists[i] = [regex.sub("\.0?$", "", x).replace(".", "_").replace(",", ".")

它應該是re.sub ,其余應該是:

myformatlists[i] = [re.sub("\.0?$", "", x).replace(".", "_").replace(",", ".") for x in myformatlists[i]]

暫無
暫無

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

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