Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/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 从具有多个值的字典键向单个键分配单个值_Python_Dictionary_Key Value - Fatal编程技术网

Python 从具有多个值的字典键向单个键分配单个值

Python 从具有多个值的字典键向单个键分配单个值,python,dictionary,key-value,Python,Dictionary,Key Value,在python中,我见过许多关于为一个键分配多个值的论坛,但没有一个论坛是相反的。我想要的是将一个键指定给一个值,然后翻转它 我所拥有的: myDict = {1: ['id1', 'id2', 'id3'], 2: ['id4', 'id5'], 3: ['id6']} 我希望做的是: myDict = {'id1': 1, 'id2': 1, 'id3': 1, 'id4': 2, 'id5': 2, 'id6': 3} 我一直在搜索论坛,不知道如何为一个键分配一个值,但我猜“翻转”部分

在python中,我见过许多关于为一个键分配多个值的论坛,但没有一个论坛是相反的。我想要的是将一个键指定给一个值,然后翻转它

我所拥有的:

myDict = {1: ['id1', 'id2', 'id3'], 2: ['id4', 'id5'], 3: ['id6']}
我希望做的是:

myDict = {'id1': 1, 'id2': 1, 'id3': 1, 'id4': 2, 'id5': 2, 'id6': 3}
我一直在搜索论坛,不知道如何为一个键分配一个值,但我猜“翻转”部分会像这样:

myDict = {y:x for x,y in MyDict.iteritems()}
任何帮助都将不胜感激

编辑:
所有id都是唯一的(不是重复/多次的机会)

因为列表中不能有重复的id,所以一个相对简单的理解就可以做到:

>>> myDict = {1: ['id1', 'id2', 'id3'], 2: ['id4', 'id5'], 3: ['id6']}
>>> {id:k for k,lst in myDict.iteritems() for id in lst}
{'id6': 3, 'id4': 2, 'id5': 2, 'id2': 1, 'id3': 1, 'id1': 1}

由于列表中不能有重复的ID,因此可以通过相对简单的理解来实现:

>>> myDict = {1: ['id1', 'id2', 'id3'], 2: ['id4', 'id5'], 3: ['id6']}
>>> {id:k for k,lst in myDict.iteritems() for id in lst}
{'id6': 3, 'id4': 2, 'id5': 2, 'id2': 1, 'id3': 1, 'id1': 1}

您需要嵌套2个理解,因为在原始dict中,每个键值对都有一个值列表

怎么样

{id:x for x,y in myDict.iteritems() for id in y}

您需要嵌套2个理解,因为在原始dict中,每个键值对都有一个值列表

怎么样

{id:x for x,y in myDict.iteritems() for id in y}

您可以通过以下方式实现此目的:

dict((x,k) for k, v in myDict.iteritems() for x in v)
或:

或者(不是肾盂疗法):


您可以通过以下方式实现此目的:

dict((x,k) for k, v in myDict.iteritems() for x in v)
或:

或者(不是肾盂疗法):

解决方案:

{id:x for x,y in myDict.iteritems() for id in y}
解决方案:

{id:x for x,y in myDict.iteritems() for id in y}

如果一个id在多个列表中怎么办?一个
id
是否可能在多个
value
列表中?您需要指定如何处理冲突。是否要保留多个值?很抱歉,每个id都是唯一的。如果一个id位于多个列表中怎么办?一个
id
是否可能位于多个
value
列表中?您需要指定如何处理冲突。是否要保留多个值?抱歉,每个id都是唯一的。