python循环输入字典_python - 使用'for'循环迭代字典
使用'for'循環(huán)迭代字典
.values
Python如何識別它只需要從中讀取密鑰?? 字典? 關(guān)鍵是Python中的一個特殊詞嗎? 或者只是一個?? 變量?
這不僅僅是.values循環(huán)。 這里重要的一詞是“迭代”。
字典是鍵到值的映射:
d = {'x': 1, 'y': 2, 'z': 3}
每當(dāng)我們迭代它時,我們迭代鍵。 變量名稱.values僅用于描述 - 它非常適合此目的。
這發(fā)生在列表理解中:
>>> [k for k in d]
['x', 'y', 'z']
它發(fā)生在我們將字典傳遞給列表(或任何其他集合類型對象)時:
>>> list(d)
['x', 'y', 'z']
Python迭代的方式是,在需要的上下文中,它調(diào)用對象的.values方法(在本例中為字典),該方法返回迭代器(在本例中為keyiterator對象):
>>> d.__iter__()
我們不應(yīng)該自己使用這些特殊方法,而是使用相應(yīng)的內(nèi)置函數(shù)來調(diào)用它,.values:
>>> key_iterator = iter(d)
>>> key_iterator
迭代器有一個.values方法 - 但我們用內(nèi)置函數(shù).items調(diào)用它:
>>> next(key_iterator)
'x'
>>> next(key_iterator)
'y'
>>> next(key_iterator)
'z'
>>> next(key_iterator)
Traceback (most recent call last):
File "", line 1, in
StopIteration
當(dāng)?shù)骱谋M時,它會引發(fā).values.這就是Python知道退出.items循環(huán),列表解析,生成器表達式或任何其他迭代上下文的方式。 一旦迭代器引發(fā)StopIteration它將始終引發(fā)它 - 如果你想再次迭代,你需要一個新的。
>>> list(key_iterator)
[]
>>> new_key_iterator = iter(d)
>>> list(new_key_iterator)
['x', 'y', 'z']
回到dicts
我們已經(jīng)看到dicts在許多情況下迭代。 我們所看到的是,無論何時我們迭代一個字典,我們都得到了密鑰。 回到原始示例:
.values
如果我們更改變量名稱,我們?nèi)匀粫@得密鑰。 我們來試試吧:
>>> for each_key in d:
... print(each_key, '=>', d[each_key])
...
x => 1
y => 2
z => 3
如果我們想迭代這些值,我們需要使用.values的dicts方法,或者同時使用.items:
>>> list(d.values())
[1, 2, 3]
>>> list(d.items())
[('x', 1), ('y', 2), ('z', 3)]
在給出的示例中,迭代這樣的項目會更有效:
for a_key, corresponding_value in d.items():
print(a_key, corresponding_value)
但是出于學(xué)術(shù)目的,問題的例子很好。
總結(jié)
以上是生活随笔為你收集整理的python循环输入字典_python - 使用'for'循环迭代字典的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: d3 svg path添加文本_10 倍
- 下一篇: python开发的前景_python开发