Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.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 从一组字典创建字典:TypeError:unshable类型:“list”_Python_List_Dictionary_Typeerror - Fatal编程技术网

Python 从一组字典创建字典:TypeError:unshable类型:“list”

Python 从一组字典创建字典:TypeError:unshable类型:“list”,python,list,dictionary,typeerror,Python,List,Dictionary,Typeerror,我有上面提到的字典列表状态。我希望创建自己的词典,如 status = [ {'id':'1', 'name': 'US'}, {'id':'2', 'name': 'UK'}, {'id':'3', 'name': 'India'}, {'id':'4', 'name': 'Mumbai'}, {'id':'5', 'name': 'NewYork'} ] 因此,为了生成我的字典,将key作为myWorld,将整体状态作为dictionary值,我做了以下操作: 这是处理这个案件的正确方法吗

我有上面提到的字典列表状态。我希望创建自己的词典,如

status = [
{'id':'1', 'name': 'US'},
{'id':'2', 'name': 'UK'},
{'id':'3', 'name': 'India'},
{'id':'4', 'name': 'Mumbai'},
{'id':'5', 'name': 'NewYork'}
]
因此,为了生成我的字典,将key作为myWorld,将整体状态作为dictionary值,我做了以下操作:

这是处理这个案件的正确方法吗?? 我得到一个错误:

my_dict = dict((each["myWorld"], each) for each in status)
哪里出了问题?我该怎么解决这个问题呢? 我想一定有某种功能可以做到这一点。

这就是你想要的吗

TypeError: unhashable type: 'list'
结果:

#!/usr/bin/env python
from pprint import pprint
status = [
{'id':'1', 'name': 'US'},
{'id':'2', 'name': 'UK'},
{'id':'3', 'name': 'India'},
{'id':'4', 'name': 'Mumbai'},
{'id':'5', 'name': 'NewYork'}
]

def make_dict(key, values):
    return {key: values}

pprint(make_dict("My_world", status))

状态没有myWorld密钥。。。现在还不清楚你想在这里做什么,但是错误是很明显的。您正在尝试使用列表作为字典中的键。列表不可散列,这是dict键的要求,因此会引发异常。my_dict定义只有第一个值的键。剩下的只是会产生语法错误的值。我想用我现有的所有词典制作一本新词典。因此,当前所有这些字典在我的程序中都是列表状态,它们将是我的新字典my_dict的值,我想给它分配一个键myWorld。除非将值放入某些容器中,否则dict键只能有一个值。您希望如何访问,例如,新my_dict数据结构中的值“孟买”?my_dict={'myWorld':{'id':'1','name':'US'},{'id':'2','name':'UK'},{'id':'3','name':'India'},{'id':'4','name':'Mumbai'},{'id':'5','name':'NewYork'}我尝试了您上面提到的方法,但它给出了TypeError:“dict”对象在代码中不可调用,您尝试制作一个字典,其中第一对键/值是MyWorld和{'id':'1'…},第二对如果没有键,则是唯一的值。将代码粘贴到“dict”对象不可调用的位置
#!/usr/bin/env python
from pprint import pprint
status = [
{'id':'1', 'name': 'US'},
{'id':'2', 'name': 'UK'},
{'id':'3', 'name': 'India'},
{'id':'4', 'name': 'Mumbai'},
{'id':'5', 'name': 'NewYork'}
]

def make_dict(key, values):
    return {key: values}

pprint(make_dict("My_world", status))
{'My_world': [{'id': '1', 'name': 'US'},
              {'id': '2', 'name': 'UK'},
              {'id': '3', 'name': 'India'},
              {'id': '4', 'name': 'Mumbai'},
              {'id': '5', 'name': 'NewYork'}]}