我一直很難嘗試轉換這個串列,因為它里面有一個元組,并且操作元組并不容易,因為它們本質上是不可更改的。但顯然有辦法解決它,因為我能夠調整數字,但是我無法帶回一個字串來制作一個新串列。當我嘗試時收到此錯誤:
Traceback (most recent call last):
File "/Users/Swisha/Documents/Coding Temple/Python VI/tupe.py", line 4, in <module>
newplaces = list(map(lambda c: c[0] (9/5) * c[1] 32, places))
File "/Users/Swisha/Documents/Coding Temple/Python VI/tupe.py", line 4, in <lambda>
newplaces = list(map(lambda c: c[0] (9/5) * c[1] 32, places))
TypeError: 'str' object is not callable
我的錯誤嘗試:
# F = (9/5)*C 32
places = [('Nashua',32),("Boston",12),("Los Angelos",44),("Miami",29)]
newplaces = list(map(lambda c: c[0] (9/5) * c[1] 32, places))
print(newplaces)
我的輸出沒有字串:
[89.6, 53.6, 111.2, 84.2]
所需的輸出:
[('Nashua', 89.6), ('Boston', 53.6), ('Los Angelos', 111.2), ('Miami', 84.2)]
uj5u.com熱心網友回復:
c是一個元組(c[0]是地名),所以
# return a tuple that includes the place name
newplaces = list(map(lambda c: (c[0], (9/5) * c[1] 32), places))
print(newplaces)
[('Nashua', 89.6), ('Boston', 53.6), ('Los Angelos', 111.2), ('Miami', 84.2)]
uj5u.com熱心網友回復:
您還應該包括元組的第一個元素。
places = [('Nashua',32),("Boston",12),("Los Angelos",44), ("Miami",29)]
newplaces = list(map(lambda c: (c[0], (9/5) * c[1] 32), places))
print(newplaces)
uj5u.com熱心網友回復:
map()如果不是學習目的,我建議使用串列理解,而不是可讀性差的功能。
# F = (9/5)*C 32
places = [('Nashua',32),("Boston",12),("Los Angelos",44),("Miami",29)]
newplaces = [(place, (9/5) * c 32) for place, c in places]
print(newplaces)
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/477320.html
上一篇:無法在python中訪問字典的鍵
