Python 从字典创建元组列表?
我有一本简单的字典:Python 从字典创建元组列表?,python,dictionary,casting,nested,tuples,Python,Dictionary,Casting,Nested,Tuples,我有一本简单的字典: {"keyy":{"key": "value", "cey": "value"}, "kaye":{"key": "value"}} 我想将其编码为“上下文感知”元组: 我尝试使用ValueError:要解压缩的值太多: 如何创建这个元组列表?我想要一个生成器: mydict = {"keyy":{"key": "value", "cey": "value"}, "kaye":{"key": "value"}} def unnest(d): for outerke
{"keyy":{"key": "value", "cey": "value"}, "kaye":{"key": "value"}}
我想将其编码为“上下文感知”元组:
我尝试使用ValueError:要解压缩的值太多:
如何创建这个元组列表?我想要一个生成器:
mydict = {"keyy":{"key": "value", "cey": "value"}, "kaye":{"key": "value"}}
def unnest(d):
for outerkey in d.iterkeys():
for innerkey, value in d[outerkey].iteritems():
yield outerkey, innerkey, value
mytuplelist = list(unnest(mydict))
或者,您当然可以将其放在列表中:
mytuplelist = [(outerkey, innerkey, value) for outerkey in mydict.iterkeys()
for (innerkey, value) in mydict[outerkey].iteritems()]
dict1 = {"keyy":{"key": "value", "cey": "value"}, "kaye":{"key": "value"}}
print [(key1, key2, dict1[key1][key2]) for key1 in dict1 for key2 in dict1[key1]]
我喜欢这台发电机:
mydict = {"keyy":{"key": "value", "cey": "value"}, "kaye":{"key": "value"}}
def unnest(d):
for outerkey in d.iterkeys():
for innerkey, value in d[outerkey].iteritems():
yield outerkey, innerkey, value
mytuplelist = list(unnest(mydict))
或者,您当然可以将其放在列表中:
mytuplelist = [(outerkey, innerkey, value) for outerkey in mydict.iterkeys()
for (innerkey, value) in mydict[outerkey].iteritems()]
dict1 = {"keyy":{"key": "value", "cey": "value"}, "kaye":{"key": "value"}}
print [(key1, key2, dict1[key1][key2]) for key1 in dict1 for key2 in dict1[key1]]
使用列表理解:
mydict={"keyy":{"key": "value", "cey": "value"}, "kaye":{"key": "value"}}
mytuplelist=[(key,y,mydict[key][y]) for key in mydict for y in mydict[key]]
print (mytuplelist)
[('keyy', 'cey', 'value'), ('keyy', 'key', 'value'), ('kaye', 'key', 'value')]
dic={"keyy":{"key": "value", "cey": "value"}, "kaye":{"key": "value"}}
lis=[]
for x in dic:
for y in dic[x]:
lis.append((x,y,dic[x][y]))
print(lis)
[('keyy', 'cey', 'value'), ('keyy', 'key', 'value'), ('kaye', 'key', 'value')]
输出:
mydict={"keyy":{"key": "value", "cey": "value"}, "kaye":{"key": "value"}}
mytuplelist=[(key,y,mydict[key][y]) for key in mydict for y in mydict[key]]
print (mytuplelist)
[('keyy', 'cey', 'value'), ('keyy', 'key', 'value'), ('kaye', 'key', 'value')]
dic={"keyy":{"key": "value", "cey": "value"}, "kaye":{"key": "value"}}
lis=[]
for x in dic:
for y in dic[x]:
lis.append((x,y,dic[x][y]))
print(lis)
[('keyy', 'cey', 'value'), ('keyy', 'key', 'value'), ('kaye', 'key', 'value')]
使用简单For In循环:
mydict={"keyy":{"key": "value", "cey": "value"}, "kaye":{"key": "value"}}
mytuplelist=[(key,y,mydict[key][y]) for key in mydict for y in mydict[key]]
print (mytuplelist)
[('keyy', 'cey', 'value'), ('keyy', 'key', 'value'), ('kaye', 'key', 'value')]
dic={"keyy":{"key": "value", "cey": "value"}, "kaye":{"key": "value"}}
lis=[]
for x in dic:
for y in dic[x]:
lis.append((x,y,dic[x][y]))
print(lis)
[('keyy', 'cey', 'value'), ('keyy', 'key', 'value'), ('kaye', 'key', 'value')]
输出:
mydict={"keyy":{"key": "value", "cey": "value"}, "kaye":{"key": "value"}}
mytuplelist=[(key,y,mydict[key][y]) for key in mydict for y in mydict[key]]
print (mytuplelist)
[('keyy', 'cey', 'value'), ('keyy', 'key', 'value'), ('kaye', 'key', 'value')]
dic={"keyy":{"key": "value", "cey": "value"}, "kaye":{"key": "value"}}
lis=[]
for x in dic:
for y in dic[x]:
lis.append((x,y,dic[x][y]))
print(lis)
[('keyy', 'cey', 'value'), ('keyy', 'key', 'value'), ('kaye', 'key', 'value')]
使用列表理解:
mydict={"keyy":{"key": "value", "cey": "value"}, "kaye":{"key": "value"}}
mytuplelist=[(key,y,mydict[key][y]) for key in mydict for y in mydict[key]]
print (mytuplelist)
[('keyy', 'cey', 'value'), ('keyy', 'key', 'value'), ('kaye', 'key', 'value')]
dic={"keyy":{"key": "value", "cey": "value"}, "kaye":{"key": "value"}}
lis=[]
for x in dic:
for y in dic[x]:
lis.append((x,y,dic[x][y]))
print(lis)
[('keyy', 'cey', 'value'), ('keyy', 'key', 'value'), ('kaye', 'key', 'value')]
输出:
mydict={"keyy":{"key": "value", "cey": "value"}, "kaye":{"key": "value"}}
mytuplelist=[(key,y,mydict[key][y]) for key in mydict for y in mydict[key]]
print (mytuplelist)
[('keyy', 'cey', 'value'), ('keyy', 'key', 'value'), ('kaye', 'key', 'value')]
dic={"keyy":{"key": "value", "cey": "value"}, "kaye":{"key": "value"}}
lis=[]
for x in dic:
for y in dic[x]:
lis.append((x,y,dic[x][y]))
print(lis)
[('keyy', 'cey', 'value'), ('keyy', 'key', 'value'), ('kaye', 'key', 'value')]
使用简单For In循环:
mydict={"keyy":{"key": "value", "cey": "value"}, "kaye":{"key": "value"}}
mytuplelist=[(key,y,mydict[key][y]) for key in mydict for y in mydict[key]]
print (mytuplelist)
[('keyy', 'cey', 'value'), ('keyy', 'key', 'value'), ('kaye', 'key', 'value')]
dic={"keyy":{"key": "value", "cey": "value"}, "kaye":{"key": "value"}}
lis=[]
for x in dic:
for y in dic[x]:
lis.append((x,y,dic[x][y]))
print(lis)
[('keyy', 'cey', 'value'), ('keyy', 'key', 'value'), ('kaye', 'key', 'value')]
输出:
mydict={"keyy":{"key": "value", "cey": "value"}, "kaye":{"key": "value"}}
mytuplelist=[(key,y,mydict[key][y]) for key in mydict for y in mydict[key]]
print (mytuplelist)
[('keyy', 'cey', 'value'), ('keyy', 'key', 'value'), ('kaye', 'key', 'value')]
dic={"keyy":{"key": "value", "cey": "value"}, "kaye":{"key": "value"}}
lis=[]
for x in dic:
for y in dic[x]:
lis.append((x,y,dic[x][y]))
print(lis)
[('keyy', 'cey', 'value'), ('keyy', 'key', 'value'), ('kaye', 'key', 'value')]
要修复代码,请执行以下操作:
mydict={"keyy":{"key": "value", "cey": "value"}, "kaye":{"key" : "value"}}
mytuplelist = [(outer, inner, val) for outer, d in mydict.iteritems()
for inner, val in d.iteritems()]
print mytuplelist
请参阅kindall关于如何以简单方式完成此操作的答案:)要修复代码:
mydict={"keyy":{"key": "value", "cey": "value"}, "kaye":{"key" : "value"}}
mytuplelist = [(outer, inner, val) for outer, d in mydict.iteritems()
for inner, val in d.iteritems()]
print mytuplelist
请参阅kindall关于如何以简单方式执行此操作的回答:)以下示例将创建元组列表,如您所示:
mydict = {"keyy":{"key": "value", "cey": "value"}, "kaye":{"key": "value"}}
tuplelist = []
for outer, dct in mydict.iteritems():
tuplelist.extend((outer, key, val) for key, val in dct.iteritems())
以下示例将创建如您所示的元组列表:
mydict = {"keyy":{"key": "value", "cey": "value"}, "kaye":{"key": "value"}}
tuplelist = []
for outer, dct in mydict.iteritems():
tuplelist.extend((outer, key, val) for key, val in dct.iteritems())
通过更正您的输入错误(上一个嵌套的dict中缺少:
,这可能是导致“项目太多而无法解包”的原因之一),您可以恢复列表理解:
mytuplelist = [(outerkey, innerkey, value) for outerkey in mydict.iterkeys()
for (innerkey, value) in mydict[outerkey].iteritems()]
dict1 = {"keyy":{"key": "value", "cey": "value"}, "kaye":{"key": "value"}}
print [(key1, key2, dict1[key1][key2]) for key1 in dict1 for key2 in dict1[key1]]
通过更正您的输入错误(上一个嵌套的dict中缺少:
,这可能是导致“项目太多而无法解包”的原因之一),您可以恢复列表理解:
mytuplelist = [(outerkey, innerkey, value) for outerkey in mydict.iterkeys()
for (innerkey, value) in mydict[outerkey].iteritems()]
dict1 = {"keyy":{"key": "value", "cey": "value"}, "kaye":{"key": "value"}}
print [(key1, key2, dict1[key1][key2]) for key1 in dict1 for key2 in dict1[key1]]
使用列表理解
>>> D={"keyy":{"key": "value", "cey": "value"}, "kaye":{"key": "value"}}
>>> [(i,)+j for i in D for j in D[i].iteritems()]
[('keyy', 'cey', 'value'), ('keyy', 'key', 'value'), ('kaye', 'key', 'value')]
使用列表理解
>>> D={"keyy":{"key": "value", "cey": "value"}, "kaye":{"key": "value"}}
>>> [(i,)+j for i in D for j in D[i].iteritems()]
[('keyy', 'cey', 'value'), ('keyy', 'key', 'value'), ('kaye', 'key', 'value')]
tuple(k,v,val)
应该是(k,v,val)
nextYeah,我知道,我只是想显式地展示我试图做的事情。这是非常明确的,因为tuple(k,v,val)
是一个类型错误:-]哦,我不知道tuple(k,v,val)
应该是(k,v,val)
nextYeah,我知道,只是想显式地显示我正在尝试做的事情。这是非常明确的,因为tuple(k,v,val)
是一个类型错误:-]哦,我不知道!谢谢,这(还有另外两个)很好D-为了帮助我决定接受哪一个,你们认为你们中的任何人都可以把它归结为一行吗P@user1438003我使用了列表理解,这是一行。我写了一个与列表理解相同的答案。这一个更完整,+1谢谢,这(和另外两个)工作D-为了帮助我决定接受哪一个,你们认为你们中的任何人都可以把它归结为一行吗P@user1438003我使用了列表理解,这是一行。我写了一个与列表理解相同的答案。这个更完整,+1