Python 为元组项分配键
这是我的代码示例。现在我想把元组的每个值映射到id或name。 所以我可以得到如下结果:Python 为元组项分配键,python,Python,这是我的代码示例。现在我想把元组的每个值映射到id或name。 所以我可以得到如下结果: l1 = [1, 2, 3] l2 = ['foo', 'bar', 'test'] z1 = zip(l1,l2) list(z1) [(1, 'foo'), (2, 'bar'), (3, 'test')] 我所做的是: [('id':1, 'name':'foo'), ('id':2, 'name':'bar'), ('id':3, 'name':'test')] 但第一)它不起作用,第二)据
l1 = [1, 2, 3]
l2 = ['foo', 'bar', 'test']
z1 = zip(l1,l2)
list(z1)
[(1, 'foo'), (2, 'bar'), (3, 'test')]
我所做的是:
[('id':1, 'name':'foo'), ('id':2, 'name':'bar'), ('id':3, 'name':'test')]
但第一)它不起作用,第二)据我所知,根本不是蟒蛇式的
我不明白为什么上面的循环不起作用。如果我这样做:
>>> result = []
>>> for i in zip(l1,l2):
... d['id'] = i[0]
... d['name'] = i[1]
... result.append(d)
>>> result
[{'id': 3, 'name': 'test'}, {'id': 3, 'name': 'test'}, {'id': 3, 'name': 'test'}]
它会毫无问题地迭代每一项,我在列表中使用的append()不会引起任何问题…您可以使用dict理解为循环pythonical编写它:
>>> for i in zip(l1,l2):
... print(i[0], i[1])
...
1 foo
2 bar
3 test
根据这个DICT实际上是多么复杂,以及你想用它来做什么,你可能想考虑使用一个简单的类来代替。
< P>你可以用DICT理解写循环for:y/p>>>> for i in zip(l1,l2):
... print(i[0], i[1])
...
1 foo
2 bar
3 test
根据这个DICT实际上是多么复杂,以及你想用它来做什么,你可能想考虑使用一个简单的类来代替。
< P>你可以用DICT理解写循环for:y/p>>>> for i in zip(l1,l2):
... print(i[0], i[1])
...
1 foo
2 bar
3 test
根据这个DICT实际上是多么复杂,以及你想用它来做什么,你可能想考虑使用一个简单的类来代替。
< P>你可以用DICT理解写循环for:y/p>>>> for i in zip(l1,l2):
... print(i[0], i[1])
...
1 foo
2 bar
3 test
根据这个DICT实际上是多么复杂,以及你想用它做什么,你可能想考虑使用一个简单的类。
ID >代码> d < /Cord>是你的字典,你正在替换字典(代码>代码> d>代码>的键(<代码> ID <代码> >代码>名称>代码>的值,然后将其附加到列表中。 要创建字典列表,可以使用如下列表:[{'id': id, 'name': name} for id,name in zip(l1, l2)]
Id
d
是您的字典您正在做的是替换字典d
的键(Id
&name
)的值,并将其添加到列表中
要创建字典列表,可以使用如下列表:
[{'id': id, 'name': name} for id,name in zip(l1, l2)]
Id
d
是您的字典您正在做的是替换字典d
的键(Id
&name
)的值,并将其添加到列表中
要创建字典列表,可以使用如下列表:
[{'id': id, 'name': name} for id,name in zip(l1, l2)]
Id
d
是您的字典您正在做的是替换字典d
的键(Id
&name
)的值,并将其添加到列表中
要创建字典列表,可以使用如下列表:
[{'id': id, 'name': name} for id,name in zip(l1, l2)]
您的解决方案不起作用,因为您正在每一步“覆盖”dict:
l1 = [1, 2, 3]
l2 = ['foo', 'bar', 'test']
result = [{'id': i[0], 'name':i[1]} for i in zip(l1,l2)]
一种方法是在每个步骤开始时“重置”dict:
>>> for i in zip(l1,l2):
... d['id']=i[0]
... d['name']=i[1]
... r.append(d)
... print r
...
[{'id': 1, 'name': 'foo'}]
[{'id': 2, 'name': 'bar'}, {'id': 2, 'name': 'bar'}]
[{'id': 3, 'name': 'test'}, {'id': 3, 'name': 'test'}, {'id': 3, 'name': 'test'}]
但正如其他人指出的,[{'id':id,'name':name}对于id,zip中的name(l1,l2)]
更像python
我不知道你是否可以使用它,但你可以用你的拉链制作你的dict:
>>> for i in zip(l1,l2):
... d={}
... d['id']=i[0]
... d['name']=i[1]
... r.append(d)
... print r
...
[{'id': 1, 'name': 'foo'}]
[{'id': 1, 'name': 'foo'}, {'id': 2, 'name': 'bar'}]
[{'id': 1, 'name': 'foo'}, {'id': 2, 'name': 'bar'}, {'id': 3, 'name': 'test'}]
您的解决方案不起作用,因为您正在每一步“覆盖”dict:
l1 = [1, 2, 3]
l2 = ['foo', 'bar', 'test']
result = [{'id': i[0], 'name':i[1]} for i in zip(l1,l2)]
一种方法是在每个步骤开始时“重置”dict:
>>> for i in zip(l1,l2):
... d['id']=i[0]
... d['name']=i[1]
... r.append(d)
... print r
...
[{'id': 1, 'name': 'foo'}]
[{'id': 2, 'name': 'bar'}, {'id': 2, 'name': 'bar'}]
[{'id': 3, 'name': 'test'}, {'id': 3, 'name': 'test'}, {'id': 3, 'name': 'test'}]
但正如其他人指出的,[{'id':id,'name':name}对于id,zip中的name(l1,l2)]
更像python
我不知道你是否可以使用它,但你可以用你的拉链制作你的dict:
>>> for i in zip(l1,l2):
... d={}
... d['id']=i[0]
... d['name']=i[1]
... r.append(d)
... print r
...
[{'id': 1, 'name': 'foo'}]
[{'id': 1, 'name': 'foo'}, {'id': 2, 'name': 'bar'}]
[{'id': 1, 'name': 'foo'}, {'id': 2, 'name': 'bar'}, {'id': 3, 'name': 'test'}]
您的解决方案不起作用,因为您正在每一步“覆盖”dict:
l1 = [1, 2, 3]
l2 = ['foo', 'bar', 'test']
result = [{'id': i[0], 'name':i[1]} for i in zip(l1,l2)]
一种方法是在每个步骤开始时“重置”dict:
>>> for i in zip(l1,l2):
... d['id']=i[0]
... d['name']=i[1]
... r.append(d)
... print r
...
[{'id': 1, 'name': 'foo'}]
[{'id': 2, 'name': 'bar'}, {'id': 2, 'name': 'bar'}]
[{'id': 3, 'name': 'test'}, {'id': 3, 'name': 'test'}, {'id': 3, 'name': 'test'}]
但正如其他人指出的,[{'id':id,'name':name}对于id,zip中的name(l1,l2)]
更像python
我不知道你是否可以使用它,但你可以用你的拉链制作你的dict:
>>> for i in zip(l1,l2):
... d={}
... d['id']=i[0]
... d['name']=i[1]
... r.append(d)
... print r
...
[{'id': 1, 'name': 'foo'}]
[{'id': 1, 'name': 'foo'}, {'id': 2, 'name': 'bar'}]
[{'id': 1, 'name': 'foo'}, {'id': 2, 'name': 'bar'}, {'id': 3, 'name': 'test'}]
您的解决方案不起作用,因为您正在每一步“覆盖”dict:
l1 = [1, 2, 3]
l2 = ['foo', 'bar', 'test']
result = [{'id': i[0], 'name':i[1]} for i in zip(l1,l2)]
一种方法是在每个步骤开始时“重置”dict:
>>> for i in zip(l1,l2):
... d['id']=i[0]
... d['name']=i[1]
... r.append(d)
... print r
...
[{'id': 1, 'name': 'foo'}]
[{'id': 2, 'name': 'bar'}, {'id': 2, 'name': 'bar'}]
[{'id': 3, 'name': 'test'}, {'id': 3, 'name': 'test'}, {'id': 3, 'name': 'test'}]
但正如其他人指出的,[{'id':id,'name':name}对于id,zip中的name(l1,l2)]
更像python
我不知道你是否可以使用它,但你可以用你的拉链制作你的dict:
>>> for i in zip(l1,l2):
... d={}
... d['id']=i[0]
... d['name']=i[1]
... r.append(d)
... print r
...
[{'id': 1, 'name': 'foo'}]
[{'id': 1, 'name': 'foo'}, {'id': 2, 'name': 'bar'}]
[{'id': 1, 'name': 'foo'}, {'id': 2, 'name': 'bar'}, {'id': 3, 'name': 'test'}]
对于附加副本,请看这个SO。对于附加副本,请看这个SO。对于附加副本,请看这个SO。对于附加副本,请看这个SO。