关于字典我不懂的东西

Hir*_*nda 2 python

当我试图理解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)

为什么第一个输出显示带括号的字符串?

为什么第二个输出不显示逗号?

Jon*_*nts 7

dict.items 返回(元组,值)的2元组序列.

在第一个例子中发生的事情是你从那个时刻拿出一个元素,在这种情况下是整个元组(键,值).当你使用for key, value inPython执行"解包"时,这意味着它将该元组的第一个元素分配给键的键和下一个值的元素,因此您可以将它们作为单独的变量访问.

当你打印那些时,Python打印一个元组(你的第一个例子),因为(1, 2),当它被解压缩并且你打印两个单独的变量时,它打印数字1后跟数字2,中间有一个空格.


zha*_*gyu 6

dict.items返回键,值对的元组列表.如果for中只有一个名称,则将该元组分配给该名称.使用两个名称,它将键,值分别解压缩到名称.看到:

>>> a, b = (1, 2)
>>> a
1
>>> b
2
>>> a = (1, 2)
>>> a
(1, 2)
>>> 
Run Code Online (Sandbox Code Playgroud)