簡體   English   中英

字典和循環

[英]Dictionaries and For Loops

說以下是我們的代碼:

d = {"Happy":"Clam", "Sad":"Panda"}
for i in d:
    print(i)

現在print(i )僅會打印出鍵,但是如何更改它以打印出值呢?

d = {"Happy":"Clam", "Sad":"Panda"}
for i in d:
    print(i, d[i]) # This will print the key, then the value

要么

d = {"Happy":"Clam", "Sad":"Panda"}
for k,v in d.items(): # A method that lets you access the key and value
    print(k,v) # k being the key, v being the value
d = {"Happy":"Clam", "Sad":"Panda"}
for i in d:
        print(i, d[i])

給我:

('Sad', 'Panda')
('Happy', 'Clam')

Python dict有許多可用於獲取鍵,值或兩者的列表的方法。

要回答您的問題,可以使用d.values()列表:

d = {"Happy":"Clam", "Sad":"Panda"}
for v in d.values():
   print(v)

輸出:

Clam
Panda

但是, items()方法特別有用,因此應予以提及。

d = {"Happy":"Clam", "Sad":"Panda"}
for k, v in d.items():
   print(k, v)

將打印:

Happy Clam
Sad Panda

關於文檔中物品訂購的警告:

CPython實現細節:鍵和值以任意順序列出,該順序是非隨機的,在Python實現中會有所不同,並且取決於字典的插入和刪除歷史。

一種簡單的方法是為每個循環使用

for value in d.values:
    print(value)

您也可以制作一個發電機。 生成器是可迭代的序列,您可以停止和繼續。

def generator(input):
    for value in input.values():
        yield value

gen = generator(d);
print(d.next()) // Clam

// Doing complex calculations
answer = 21 + 21

print(d.next()) // Panda

另一種方法是使用高階函數“ map”。

map( print, d.values() )

// You can also use generators ;)
map( print, gen )

最后,在python 3中,字典現在支持壓縮。 字典壓縮對於創建字典非常有用,而對於打印每個條目的值的內容則不那么重要。 值得一試,因為python中的所有內容都是字典。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM