在python中迭代多个集合

2024-04-28 22:13:02 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我在想出一个方法来做下面的事情时遇到了一点小麻烦。你知道吗

让我们从收藏开始。你知道吗

Names = ['Brian', 'Tom', 'Mary']
LifeStats = [{'age':'25', 'gender':'male'},{'age':'27', 'gender':'male'},{'age':'35', 'gender':'female'}]
Children = [[{'Name':'Mike', 'Age':'5'}, {'Name':'Lisa', 'Age':'9'},][{'Name':'Paul':'Age':'5'}],[{'Name':'Pete', 'Age':'2'}{'Name':'Nicky', 'Age':'11'}{'Name':'Jerry', 'Age':'2'}]]

每个列表都是从对API的不同调用派生的。所有的收藏品都系在一起。每个集合的第一个列表值绑定在一起。但我似乎不知道如何以这样的方式迭代列表。。你知道吗

Name:Brian
Age:25
Gender:Male
Children:  Mike, Lisa<br>
Name=Tom
Age:27
Gender:Male
Children:   Paul, Pete, Nicky

我遇到的问题是迭代出子级,因为每个父级都有多个子级,因为这是一个字典列表,与两个不同的字典列表相关联。你知道吗

我在编写Python代码方面比较新手,所以如果这是一个显而易见的问题,我很抱歉


Tags: name列表agegendermalemikechildrenlisa
1条回答
网友
1楼 · 发布于 2024-04-28 22:13:02

因此,首先,可以使用zip按元素对列表进行配对。你知道吗

>>> people = zip(Names,LifeStats,Children)
>>> people
[('Brian', {'gender': 'male', 'age': '25'}, [{'Age': '5', 'Name': 'Mike'}, {'Age': '9', 'Name': 'Lisa'}]),
 ('Tom', {'gender': 'male', 'age': '27'}, [{'Age': '5', 'Name': 'Paul'}]),
 ('Mary', {'gender': 'female', 'age': '35'}, [{'Age': '2', 'Name': 'Pete'}, {'Age': '11', 'Name': 'Nicky'}, {'Age': '2', 'Name': 'Jerry'}])]

然后遍历它,解析内容,然后进行打印:

for person in people:
    # Grab relevant info from the lists and dictionaries
    name = person[0]
    age = person[1]['age']
    gender = person[1]['gender']
    children = [i['Name'] for i in person[2]]
    # Do your printing and formatting
    print('Name: {}'.format(name))
    print('Age: {}'.format(age))
    print('Gender: {}'.format(gender))
    print('Children: {}'.format(', '.join(children)))
    print('\n')

输出

Name: Brian
Age: 25
Gender: male
Children: Mike, Lisa

Name: Tom
Age: 27
Gender: male
Children: Paul

Name: Mary
Age: 35
Gender: female
Children: Pete, Nicky, Jerry

相关问题 更多 >