Python 创建包含名称列表的词典

Python 创建包含名称列表的词典,python,string,python-2.7,python-3.x,dictionary,Python,String,Python 2.7,Python 3.x,Dictionary,我有一张名单:[弗兰克,萨姆,凯文,杰克] 是否可以使用列表中的名称创建字典来创建类似的内容 'Frank' : {'Sam': 0, 'Kevin': 0, 'Jack': 0}, 'Sam' : {'Frank': 0, 'Kevin': 0, 'Jack': 0}, 'Kevin' : {'Frank': 0, 'Sam': 0, 'Jack': 0} 'Jack' : {'Frank': 0, 'Sam': 0, 'Kevin': 0} 我想知道是否可以遍历列表,选择第一个名称

我有一张名单:[弗兰克,萨姆,凯文,杰克]

是否可以使用列表中的名称创建字典来创建类似的内容

'Frank' : {'Sam': 0, 'Kevin': 0, 'Jack': 0},
 'Sam' : {'Frank': 0, 'Kevin': 0, 'Jack': 0},
 'Kevin' : {'Frank': 0, 'Sam': 0, 'Jack': 0}
 'Jack' : {'Frank': 0, 'Sam': 0,  'Kevin': 0}
我想知道是否可以遍历列表,选择第一个名称,然后用它创建一个字典,列表中的其他成员作为键,0作为默认值。然后对列表中的其他元素重复此操作

我在考虑用这样的东西

my_dynamic_vars = dict()
my_dynamic_vars.update({string: dict()})
非常感谢您的帮助。

您可以使用嵌套:

也许我会这么做

names = ['Frank', 'Sam', 'Kevin', 'Jack']
d = dict.fromkeys(names, 0)

names_dict = {}

for name in names:
    temp = d.copy()
    del temp[name]
    names_dict.update([(name, temp)])
输出:

输出
可能比我的回答要好:+1dict.fromkeys不是dict.fromkeys是的抱歉:P至少在2.6中它可以用任何一种方式工作,但是是的,你绝对正确。你可以用{name:temp}替换dict.fromkeys[name],temp,尽管OP询问
d= {}
names = ["Frank","Sam","Kevin","Jack"]
for name in names:
    d[name] = dict.fromkeys(set(names).difference([name]),0)

print d
names = ['Frank', 'Sam', 'Kevin', 'Jack']
d = dict.fromkeys(names, 0)

names_dict = {}

for name in names:
    temp = d.copy()
    del temp[name]
    names_dict.update([(name, temp)])
>>> for d in names_dict:
>>>     print d    
'Frank': {'Jack': 0, 'Kevin': 0, 'Sam': 0}
'Sam': {'Frank': 0, 'Jack': 0, 'Kevin': 0}
'Kevin': {'Frank': 0, 'Jack': 0, 'Sam': 0}
'Jack': {'Frank': 0, 'Kevin': 0, 'Sam': 0}
names = ['Frank', 'Sam', 'Kevin', 'Jack']
d = {name: dict.fromkeys([x for x in names if x != name], 0)
     for name in names}

from pprint import pprint
pprint(d)
{'Frank': {'Jack': 0, 'Kevin': 0, 'Sam': 0},
 'Jack': {'Frank': 0, 'Kevin': 0, 'Sam': 0},
 'Kevin': {'Frank': 0, 'Jack': 0, 'Sam': 0},
 'Sam': {'Frank': 0, 'Jack': 0, 'Kevin': 0}}