舉個直接的例子會更容易理解
data = [(1995, 50.28), (1996, 28.52)]
result = [(1995, 50), (1996, 29)]
我想僅對每個元組的第二個數字(50.28 和 28.52)應用轉換。
我看到了可以提供幫助的 map() 函式,但我認為它只適用于所有元素,并且在串列中包含元組使它有點棘手
uj5u.com熱心網友回復:
正如許多其他答案所注意到的那樣,更直觀的解決方案是遍歷串列的元素。
但是如果你想使用map,你確實可以,但你首先需要定義一個函式,將你想要的轉換應用于每個元組的第二個元素:
data = [(1995, 50.28), (1996, 28.52)]
def round_second(tup):
return tup[0], round(tup[1])
result = list(map(round_second, data))
result
>>> [(1995, 50), (1996, 29)]
uj5u.com熱心網友回復:
您可以使用基本的“for”回圈。你可以這樣使用;
data = [(1995, 50.28), (1996, 28.52)]
for i in range(0,len(data)):
data[i] = list(data[i])
data[i][1] = round(data[i][1])
data[i]=tuple(data[i])
uj5u.com熱心網友回復:
您可以使用串列推導和內置的round()函式來執行此操作,如下所示:
data = [(1995, 50.28), (1996, 28.52)]
result = [(x, round(y)) for x, y in data]
print(result)
輸出:
[(1995, 50), (1996, 29)]
uj5u.com熱心網友回復:
您可以像這樣在 map 中使用 lambda 函式:
result = list(map(lambda x:(x[0], round(x[1])), data))
輸出是:
[(1995, 50), (1996, 29)]
uj5u.com熱心網友回復:
地圖就是你需要的。使用它在每個元組上應用一個函式。該函式只會與每個元組的第二個數字互動
def function(item):
whatever(item[1])
return item
data = [(1995, 50.28), (1996, 28.52)]
map(function, data)
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/517637.html
