如果我有一個如下所示的 int 值字串串列:
['10 90', '10 -90', '100 45', '20 180']
我如何將其轉換為元組串列?像這樣:
[(10,90), (10,-90), (100,45), (20,180)]
下面的代碼不會更改原始串列,因為我認為 Python 中的串列是可變的,我可以直接更改值而不是創建正確值的新串列。什么是最好的方法?
newlines = []
for string in lines:
newlines.append(tuple(string))
印刷:
[('1', '0', ' ', '9', '0'), ('1', '0', ' ', '-', '9', '0'), ('1', '0', '0', ' ', '4', '5'), ('2', '0', ' ', '1', '8', '0')]
uj5u.com熱心網友回復:
您必須先拆分每個字串。然后將每個拆分項轉換為整數;最后將該對轉換為元組:
out = [tuple(map(int, item.split())) for item in lst]
輸出:
[(10, 90), (10, -90), (100, 45), (20, 180)]
uj5u.com熱心網友回復:
您可能可以使用地圖和串列理解來做到這一點,但為了清楚起見,讓我們使用簡單的回圈:
values=['10 90', '10 -90', '100 45', '20 180']
result=[]
for x in values:
pair=x.split()
pair=tuple(map(int, pair))
result.append(pair)
print(result)
uj5u.com熱心網友回復:
你可以試試這個,應該給你同樣的結果,old_lst 是你想要轉換的串列。您還應該使用 item.partition(' ') 獲得類似的結果,但是您必須合并額外的步驟來彈出回傳資料中的空間。
old_lst = ['10 90', '10 -90', '100 45', '20 180']
new_lst = []
for item in old_lst:
pair=item.split(' ')
new_lst.append(tuple(pair))
結果:
[('10', '90'), ('10', '-90'), ('100', '45'), ('20', '180')]
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/473930.html
