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 列表中的每个子列表(包含对应值的列表)合并,这样就可以方便地创建出每个属性和值对应的字典。

相关文章
|
18天前
|
数据采集 数据可视化 数据挖掘
利用Python自动化处理Excel数据:从基础到进阶####
本文旨在为读者提供一个全面的指南,通过Python编程语言实现Excel数据的自动化处理。无论你是初学者还是有经验的开发者,本文都将帮助你掌握Pandas和openpyxl这两个强大的库,从而提升数据处理的效率和准确性。我们将从环境设置开始,逐步深入到数据读取、清洗、分析和可视化等各个环节,最终实现一个实际的自动化项目案例。 ####
|
1天前
|
C语言 Python
[oeasy]python054_python有哪些关键字_keyword_list_列表_reserved_words
本文介绍了Python的关键字列表及其使用规则。通过回顾`hello world`示例,解释了Python中的标识符命名规则,并探讨了关键字如`if`、`for`、`in`等不能作为变量名的原因。最后,通过`import keyword`和`print(keyword.kwlist)`展示了Python的所有关键字,并总结了关键字不能用作标识符的规则。
20 9
|
9天前
|
数据挖掘 大数据 数据处理
python--列表list切分(超详细)
通过这些思维导图和分析说明表,您可以更直观地理解Python列表切分的概念、用法和实际应用。希望本文能帮助您更高效地使用Python进行数据处理和分析。
22 14
|
11天前
|
数据挖掘 大数据 数据处理
python--列表list切分(超详细)
通过这些思维导图和分析说明表,您可以更直观地理解Python列表切分的概念、用法和实际应用。希望本文能帮助您更高效地使用Python进行数据处理和分析。
28 10
|
16天前
|
数据采集 分布式计算 大数据
构建高效的数据管道:使用Python进行ETL任务
在数据驱动的世界中,高效地处理和移动数据是至关重要的。本文将引导你通过一个实际的Python ETL(提取、转换、加载)项目,从概念到实现。我们将探索如何设计一个灵活且可扩展的数据管道,确保数据的准确性和完整性。无论你是数据工程师、分析师还是任何对数据处理感兴趣的人,这篇文章都将成为你工具箱中的宝贵资源。
|
22天前
|
XML JSON API
如何使用Python将字典转换为XML
本文介绍了如何使用Python中的`xml.etree.ElementTree`库将字典数据结构转换为XML格式。通过定义递归函数处理字典到XML元素的转换,生成符合标准的XML文档,适用于与旧系统交互或需支持复杂文档结构的场景。示例代码展示了将一个简单字典转换为XML的具体实现过程。
16 1
|
28天前
|
数据处理 开发者 Python
Python中的列表推导式:简洁高效的数据处理
在编程世界中,效率和可读性是代码的两大支柱。Python语言以其独特的简洁性和强大的表达力,为开发者提供了众多优雅的解决方案,其中列表推导式便是一个闪耀的例子。本文将深入探讨列表推导式的使用场景、语法结构及其背后的执行逻辑,带你领略这一特性的魅力所在。
|
29天前
|
传感器 物联网 开发者
使用Python读取串行设备的温度数据
本文介绍了如何使用Python通过串行接口(如UART、RS-232或RS-485)读取温度传感器的数据。详细步骤包括硬件连接、安装`pyserial`库、配置串行端口、发送请求及解析响应等。适合嵌入式系统和物联网应用开发者参考。
45 3
|
4月前
|
Python
【python笔记】使用zip函数迭代多个可迭代对象
【python笔记】使用zip函数迭代多个可迭代对象
|
算法 Python
Python|zip函数-求最长公共前缀
Python|zip函数-求最长公共前缀
107 0
下一篇
DataWorks