Python利用列表、字典和zip函数处理数据

简介: 最近重温Python基础语法,一道练习题巩固下列表、字典、循环。给定下面两个列表 attributes 和 values,要求针对 values 中每一组子列表 value,输出其和 attributes 中的键对应后的字典,最后返回字典组成的列表,请分别用一行和多行条件循环语句,来实现这个功能

最近重温Python基础语法,一道练习题巩固下列表、字典、循环。


给定下面两个列表 attributes 和 values,要求针对 values 中每一组子列表 value,输出其和 attributes 中的键对应后的字典,最后返回字典组成的列表,请分别用一行和多行条件循环语句,来实现这个功能

attributes = ['name', 'dob', 'gender']
values = [['jason', '2000-01-01', 'male'], 
['mike', '1999-01-01', 'male'],
['nancy', '2001-02-01', 'female']
]

# expected output:
[{'name': 'jason', 'dob': '2000-01-01', 'gender': 'male'}, 
{'name': 'mike', 'dob': '1999-01-01', 'gender': 'male'}, 
{'name': 'nancy', 'dob': '2001-02-01', 'gender': 'female'}]

使用 enumeratefor 循环(多行)

使用 enumerate 来迭代属性名列表,同时索引值列表。

result = []
for value in values:
    dict1 = {}  # 创建一个空字典
    for index, item in enumerate(attributes):
        dict1[item] = value[index]  # 将属性名作为键,对应的值作为值
    result.append(dict1)  # 将生成的字典添加到结果列表中
print("result1", result)

反向使用 enumerate(多行)

类似于第一种,但在值列表上使用 enumerate,然后从属性列表中索引。

result2 = []
for value in values:
    dict2 = {}  # 创建一个空字典
    for index, item in enumerate(value):
        dict2[attributes[index]] = item  # 使用值的索引从属性列表中获取对应的键
    result2.append(dict2)  # 将生成的字典添加到结果列表中
print("result2", result2)

使用 zip 函数和列表推导式(一行)

result3 = [dict(zip(attributes, value)) for value in values]
print("result3", result3)

zip 函数

zip 函数在 Python 中用于将多个迭代器(如列表、元组)的元素打包成一个个元组,然后返回由这些元组组成的一个迭代器。

使用 zip 时,它会从每个提供的迭代器中依次取出一个元素,将它们组合成一个新的元组,并将这个新的元组作为结果的一部分返回。当最短的输入迭代器被耗尽时,zip 函数会停止生成更多的元组。

list1 = [1, 2, 3]
list2 = ['a', 'b', 'c']

# 使用zip将两个列表的元素配对
zipped = list(zip(list1, list2))  # 输出:[(1, 'a'), (2, 'b'), (3, 'c')]

# 我们也可以通过解压缩的方式还原列表
numbers, letters = zip(*zipped)
print(list(numbers))  # 输出:[1, 2, 3]
print(list(letters))  # 输出:['a', 'b', 'c']

zip 函数用于将 attributes 列表(包含键的列表)和 values 列表中的每个子列表(包含对应值的列表)合并,这样就可以方便地创建出每个属性和值对应的字典。

相关文章
|
1天前
|
存储 Python
Python中列表解包
【6月更文挑战第18天】
12 2
|
2天前
|
Python
python中字典的解包
【6月更文挑战第17天】
10 2
|
2天前
|
存储 数据挖掘 BI
Python字典在CSV数据统计中的应用
Python字典在CSV数据统计中的应用
6 1
|
2天前
|
存储 数据处理 计算机视觉
Python中的列表处理:获取与设置缩略图的艺术
Python中的列表处理:获取与设置缩略图的艺术
6 1
|
1天前
|
Python
python函数
python函数
5 0
|
1天前
|
Python
python之列表添加、修改、删除、插入、翻转、排序、复制排序
python之列表添加、修改、删除、插入、翻转、排序、复制排序
3 0
|
1天前
|
Python
python之print函数
python之print函数
7 0
|
2天前
|
Python
使用Python计算有效值函数(RMS值)
使用Python计算有效值函数(RMS值)
8 0
|
1月前
|
存储 数据可视化 数据挖掘
Python在数据分析中的利器:Pandas库全面解析
【2月更文挑战第7天】 众所周知,Python作为一种简洁、易学且功能强大的编程语言,被广泛运用于数据科学和人工智能领域。而Pandas库作为Python中最受欢迎的数据处理库之一,在数据分析中扮演着举足轻重的角色。本文将全面解析Pandas库的基本功能、高级应用以及实际案例,带您深入了解这个在数据分析领域的利器。
112 1
|
1月前
|
数据采集 SQL 数据挖掘
Python 的科学计算和数据分析: 什么是 NumPy 和 Pandas?它们各自的作用是什么?
Python 的科学计算和数据分析: 什么是 NumPy 和 Pandas?它们各自的作用是什么?