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自动化处理Excel数据:从基础到进阶####
本文旨在为读者提供一个全面的指南,通过Python编程语言实现Excel数据的自动化处理。无论你是初学者还是有经验的开发者,本文都将帮助你掌握Pandas和openpyxl这两个强大的库,从而提升数据处理的效率和准确性。我们将从环境设置开始,逐步深入到数据读取、清洗、分析和可视化等各个环节,最终实现一个实际的自动化项目案例。 ####
103 10
|
3天前
|
JSON 监控 安全
深入理解 Python 的 eval() 函数与空全局字典 {}
`eval()` 函数在 Python 中能将字符串解析为代码并执行,但伴随安全风险,尤其在处理不受信任的输入时。传递空全局字典 {} 可限制其访问内置对象,但仍存隐患。建议通过限制函数和变量、使用沙箱环境、避免复杂表达式、验证输入等提高安全性。更推荐使用 `ast.literal_eval()`、自定义解析器或 JSON 解析等替代方案,以确保代码安全性和可靠性。
15 2
|
13天前
|
索引 Python
Python列表
Python列表。
42 8
|
9天前
|
数据采集 Web App开发 监控
Python爬虫:爱奇艺榜单数据的实时监控
Python爬虫:爱奇艺榜单数据的实时监控
|
16天前
|
C语言 Python
[oeasy]python054_python有哪些关键字_keyword_list_列表_reserved_words
本文介绍了Python的关键字列表及其使用规则。通过回顾`hello world`示例,解释了Python中的标识符命名规则,并探讨了关键字如`if`、`for`、`in`等不能作为变量名的原因。最后,通过`import keyword`和`print(keyword.kwlist)`展示了Python的所有关键字,并总结了关键字不能用作标识符的规则。
29 9
|
24天前
|
数据挖掘 大数据 数据处理
python--列表list切分(超详细)
通过这些思维导图和分析说明表,您可以更直观地理解Python列表切分的概念、用法和实际应用。希望本文能帮助您更高效地使用Python进行数据处理和分析。
53 14
|
26天前
|
数据挖掘 大数据 数据处理
python--列表list切分(超详细)
通过这些思维导图和分析说明表,您可以更直观地理解Python列表切分的概念、用法和实际应用。希望本文能帮助您更高效地使用Python进行数据处理和分析。
36 10
|
1月前
|
数据采集 分布式计算 大数据
构建高效的数据管道:使用Python进行ETL任务
在数据驱动的世界中,高效地处理和移动数据是至关重要的。本文将引导你通过一个实际的Python ETL(提取、转换、加载)项目,从概念到实现。我们将探索如何设计一个灵活且可扩展的数据管道,确保数据的准确性和完整性。无论你是数据工程师、分析师还是任何对数据处理感兴趣的人,这篇文章都将成为你工具箱中的宝贵资源。
|
2月前
|
XML JSON API
如何使用Python将字典转换为XML
本文介绍了如何使用Python中的`xml.etree.ElementTree`库将字典数据结构转换为XML格式。通过定义递归函数处理字典到XML元素的转换,生成符合标准的XML文档,适用于与旧系统交互或需支持复杂文档结构的场景。示例代码展示了将一个简单字典转换为XML的具体实现过程。
20 1
|
8月前
|
存储 Python
python字典中删除键值的方法
python字典中删除键值的方法
180 0