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}}