当我试图理解Python词典时,我比较了两个程序的输出.我不明白为什么输出不同.
两个程序都以
data = {
'key1': 'value1',
'key2': 'value2',
'key3': 'value3'
}
Run Code Online (Sandbox Code Playgroud)
第一个项目:
for keys in data.items():
print keys
Run Code Online (Sandbox Code Playgroud)
第二个方案:
for keys, values in data.items():
print keys, values
Run Code Online (Sandbox Code Playgroud)
输出是
('key3', 'value3')
('key2', 'value2')
('key1', 'value1')
Run Code Online (Sandbox Code Playgroud)
和
key3 value3
key2 value2
key1 value1
Run Code Online (Sandbox Code Playgroud)
为什么第一个输出显示带括号的字符串?
为什么第二个输出不显示逗号?
dict.items 返回(元组,值)的2元组序列.
在第一个例子中发生的事情是你从那个时刻拿出一个元素,在这种情况下是整个元组(键,值).当你使用for key, value inPython执行"解包"时,这意味着它将该元组的第一个元素分配给键的键和下一个值的元素,因此您可以将它们作为单独的变量访问.
当你打印那些时,Python打印一个元组(你的第一个例子),因为(1, 2),当它被解压缩并且你打印两个单独的变量时,它打印数字1后跟数字2,中间有一个空格.
dict.items返回键,值对的元组列表.如果for中只有一个名称,则将该元组分配给该名称.使用两个名称,它将键,值分别解压缩到名称.看到:
>>> a, b = (1, 2)
>>> a
1
>>> b
2
>>> a = (1, 2)
>>> a
(1, 2)
>>>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
77 次 |
| 最近记录: |