Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 理解词典与词典构造_Python_Dictionary - Fatal编程技术网

Python 理解词典与词典构造

Python 理解词典与词典构造,python,dictionary,Python,Dictionary,我刚刚开始学习python,并试图理解字典的不同结构,同时阅读字典。我知道它有键和值格式,但我几乎没有疑问理解 我有两本字典,分别是d1和d2 >>> d1 {'A': 'one', 'B': 'two', 'C': 'three'} >>> type(d1) <class 'dict'> 虽然上面的示例我看到dictionary键是可以的,但是值是列表格式的,在查看类型时,它还显示class dict >>> d2 {'A':

我刚刚开始学习python,并试图理解字典的不同结构,同时阅读字典。我知道它有键和值格式,但我几乎没有疑问理解

我有两本字典,分别是
d1
d2

>>> d1
{'A': 'one', 'B': 'two', 'C': 'three'}
>>> type(d1)
<class 'dict'>
虽然上面的示例我看到dictionary键是可以的,但是值是列表格式的,在查看类型时,它还显示
class dict

>>> d2
{'A': ['B', 'C']}
>>> type(d2)
<class 'dict'>
那么,我如何将
d2
处理为正确的字典格式
键和值
。说我想处理
d2
,所以看起来像是
d1
,那怎么可能实现呢


如果有什么我说不清楚的话,请道歉。

在Python 3中,您可以在
d2
字典上使用,如下所示:

>>> for key, value in d2.items():
...     print(f"{key} : {value}")

尝试使用python库将数字转换为单词,并展平字典以获得所需的输出。

python字典中有一组无序的键:值对

键在字典中是唯一的,而值可能不是唯一的。字典的值可以是任何类型的,但键必须是不可变的数据类型,如字符串、数字或元组

因此,您可以在值中存储任何类型的对象

在第一个示例中,您将字符串存储在值中。 在第二个示例中,您将列表存储在值中

您可以使用下面的代码访问键值对

d1 = {'A': 'one', 'B': 'two', 'C': 'three'}
d2 = {'A' : ['B', 'C'], 'D':['E','F']}

for k,v in d1.items():
    print("key = {} value = {}".format(k,v))


for k,v in d2.items():
    print("key = {} value = {}".format(k,v))
输出:

key = A value = one
key = B value = two
key = C value = three
key = A value = ['B', 'C']
key = D value = ['E', 'F']

它们都是“合适的”词典。dictionary变量的类型不会告诉您值的类型。如果您想查看值的类型,只需执行
type(下一步(iter(d2.values()))
(或者只需使用您知道的键对字典进行索引)。您希望得到什么作为输出?我一点也不明白你要做什么。@AlexanderReynolds,我试图证明它不起作用,并说
TypeError:“dict_values”对象不是迭代器
是的,我编辑了注释,因为我意识到我遗漏了部分内容。@AlexanderReynolds,thnx为了编辑,我编辑了我的问题,只是为了让它更清晰。萨克,thnx对于你的答案,我可以得到d2作为
{'A':'B','A':'C'}
否,正如我提到的,键在字典中应该是唯一的,所以你不能有两个值与同一个键相关联。但是它可以像
{Val:key for key,value in d2.items()for Val in value}
那样反向转换