對於某些人來說這可能是微不足道的,但我無法在Python中查看2d數組(?)。Python循環遍歷列表
orderList = [ ('apples', 2.0), ('pears', 3.0), ('limes', 4.0) ]
如何循環瀏覽此列表?我試過這個,但顯然這不起作用。
for item in orderList:
print item;
**如果你可以指導我的教程或網站有這個信息,我會滿足。
對於某些人來說這可能是微不足道的,但我無法在Python中查看2d數組(?)。Python循環遍歷列表
orderList = [ ('apples', 2.0), ('pears', 3.0), ('limes', 4.0) ]
如何循環瀏覽此列表?我試過這個,但顯然這不起作用。
for item in orderList:
print item;
**如果你可以指導我的教程或網站有這個信息,我會滿足。
您可以使用元組通過一切拆包循環:
for fruit, quantity in orderList:
print 'I have', quantity, fruit + 'es'
你也可以做到這一點從for
循環內:
for fruit_info in orderList:
fruit, quantity = fruit_info
print 'I have', quantity, fruit + 'es'
謝謝!!正是我需要的 – ealeon
你的代碼工作沒有任何問題
orderList = [ ('apples', 2.0), ('pears', 3.0), ('limes', 4.0) ]
for item in orderList:
print item; #you don't need `;` but it is not a problem to leave it
>>>
('apples', 2.0)
('pears', 3.0)
('limes', 4.0)
有幾種方法可以遍歷列表。
最常見的是對每個環路
for fruit in orderList:
print fruit
一種更有效的變化是使用發電機,它也值得注意的是,發電機可迭代序列。
def generator(fruits):
for fruit in fruits:
yield fruit
generate = generator(orderList)
firstFruit = generate.next()
// Doing complex calculations before continuing the iteration
answer = 21 + 21
secondFruit = generate.next()
更優雅的方法是使用高階函數'map'。地圖也可以返回一個值。如果你想將每種水果的價格或數量提高5%,你只需要做一個簡單的功能。
def display(fruit):
print fruit // map takes in a function as an argument and applies it to each element of the sequence.
map(display, orderList)
// You could also use a generator
map(display, generate)
我能想到的最後一種方法是使用壓縮。壓縮是一種內置的迭代形式,現在可用於大多數標準庫數據結構。如果您想使用序列創建新列表,這很有用。我很懶,所以我只是重複使用顯示來簡化語法。
[ display(fruit) for fruit in orderList ]
[ display(fruit) for fruit in generate ]
你期望輸出什麼?你有什麼作品... – Tim
你有沒有嘗試刪除分號? – Ernir
@Ernir:分號是多餘的,不是非法的 – inspectorG4dget