我是python的新手,正在尝试掌握一些事情。我想从两个列表中创建一个字典。我有两组数据:
Person | Name
--------|--------
1 | Jimmy
2 | Mike
3 | Stanley
4 | Will
我在列表中都有这两个,一个名为“person”,一个名为“name”。我在一个脚本中执行此操作,该脚本运行多个文件来提取数据。每个列表的长度不同,其中包含不同的数据。基本上,我想要做的是打印数据,如下所示:
1 \t Jimmy
2 \t Mike
3 \t Stanley
4 \t Will
我从xml文件中提取数据,这是我用来提取数据的代码:
for people in xml.iter('people'):
person.append(people.find('person').text)
name.append(people.find('name').text)
到目前为止,脚本运行良好,我可以分别打印出两个列表。我不知道怎么做是将它们打印在一起,所以我的想法是将它们存储到字典中,但我真的不知道该怎么做。
答案 0 :(得分:5)
如果您只想打印两个列表,可以使用zip
(doc)
for num,name in zip(num_list,name_list):
print str(num) + '\t' + name
您可以使用相同的表单将这些对放入字典中(在您拥有列表之后)
name_dict = {}
for num,name in zip(num_list,name_list):
name_dict[num] = name
然后打印
for num,name in name_dict.iteritems():
print str(num) + '\t' + name
答案 1 :(得分:3)
我认为你不需要这里的字典。要将列表元素组合在一起,只需使用zip:
In [27]: zip(person, name)
Out[27]: [(1, 'Jimmy'), (2, 'Mike'), (3, 'Stanley'), (4, 'Will')]
例如,
person = [1,2,3,4]
name = ['Jimmy', 'Mike', 'Stanley', 'Will']
for p, n in zip(person, name):
print('{p}\t{n}'.format(p = p, n = n))
产量
1 Jimmy
2 Mike
3 Stanley
4 Will
PS。如果出于某种原因,你确实想要一个字典,那么它也很容易形成:
In [28]: dict(zip(person, name))
Out[28]: {1: 'Jimmy', 2: 'Mike', 3: 'Stanley', 4: 'Will'}
答案 2 :(得分:2)
在小学python中。
people_dict = {}
for people in xml.iter('people'):
person = people.find('person').text
name = people.find('name').text
people_dict[name] = person
答案 3 :(得分:1)
使用zip内置函数创建dict:
dct = dict(zip(person, name))
然后打印字典,你可以这样做:
for k in dct:
print '%s\t%s' % (k, dct[k])
祝你好运
麦克
答案 4 :(得分:0)
如果您只需将它们打印在一起,那么元组列表可能比字典更合适,因为字典不能保持顺序。以下是您可以这样做的方法:
people = []
for person in xml.iter('people'):
people.append((person.find('person').text, person.find('name').text))
然后打印:
for p, name in people:
print p + '\t' + name
答案 5 :(得分:0)
使用zip内置功能。</ p>
In [3]: person = range(1,5)
In [4]: name = ['Jimmy', 'Mike', 'Stanley', 'Will']
In [5]: zip(person, name)
Out[5]: [(1, 'Jimmy'), (2, 'Mike'), (3, 'Stanley'), (4, 'Will')]
In [6]: for p,n in zip(person, name):
...: print p, '\t', n
...:
1 Jimmy
2 Mike
3 Stanley
4 Will
答案 6 :(得分:0)
如果你使用的是Python 2.7或者newere,Dict comprehensions可用。对于您的特定情况,它们可能过度,但它们是一种很好的技术,可以优雅地了解和解决此问题。