我目前正在做一個學校專案,我需要用 python 撰寫一個程式,從坐標串列中減去一個值。我不允許使用import讓事情變得更容易。
我有這個串列:[[1,2],[2,3],[3,4]]
我需要從這個串列中每個串列的第二個值中減去一個值。
舉個例子:[[1,2],[2,3],[3,4]]
變成:[[1,1],[2,2],[3,3]]
這是我到目前為止的代碼:
def coordinates(y):
for i in (y):
(i[1] - 5)
return (y)
我只是無法讓它作業。有誰知道這樣做的好方法?
uj5u.com熱心網友回復:
鑒于您總是試圖從 y 坐標中減去,索引到串列的串列集將為您的問題提供最簡單的解決方案。
下面從串列的第二個坐標中減去 1 并回傳串列。
def coordinates(l):
for i in range(len(l)):
l[i][1] = l[i][1] - 1
return l
uj5u.com熱心網友回復:
假設您不想修改原始串列。在這種情況下:
def coordinates(l):
return [[x, y-1] for x, y in l]
print(coordinates([[1,2],[2,3],[3,4]]))
輸出:
[[1, 1], [2, 2], [3, 3]]
uj5u.com熱心網友回復:
我認為您應該通過將它需要知道的所有內容作為引數傳遞而不是將所有內容硬編碼到其中來使您的函式通用化——這將允許它與不同的串列和/或數量一起重用。
以下說明了我的意思:
def add_y(coords, y):
for coord in coords:
coord[1] = y
return coords
data = [[1,2],[2,3],[3,4]]
print(data) # -> [[1, 2], [2, 3], [3, 4]]
data = add_y(data, -1)
print(data) # -> [[1, 1], [2, 2], [3, 3]]
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/427606.html
下一篇:在串列串列中搜索2個條件
