数据STUDIO

我把 Python 中 zip() 函数玩出花了!

Image

Image

1. 合并两个列表

用例:逐个元素合并两个列表。

names = ["Alice", "Bob", "Charlie"]
ages = [25, 30, 35]

combined = list(zip(names, ages))
print(combined)  

[('Alice', 25), ('Bob', 30), ('Charlie', 35)]

2. 解压列表

将配对数据拆分成单独的列表。

combined = [('Alice', 25), ('Bob', 30), ('Charlie', 35)]

names, ages = zip(*combined)
print(names)  
print(ages) 

('Alice', 'Bob', 'Charlie')
(25, 30, 35)

3. 同时迭代多个列表

用例:当您需要同时遍历多个列表时很有用。

subjects = ['Math', 'Science', 'English']
scores = [88, 92, 85]

for subject, score in zip(subjects, scores):
    print(f"{subject}: {score}")

Math: 88
Science: 92
English: 85

4.创建字典

用例:从两个列表创建字典:一个用于键,一个用于值。

keys = ['name', 'age', 'city']
values = ['Alice', 25, 'New York']

dictionary = dict(zip(keys, values))
print(dictionary)  

{'name': 'Alice', 'age': 25, 'city': 'New York'}

5. 合并多个列表

用例:将两个以上的列表压缩在一起。

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

combined = list(zip(list1, list2, list3))
print(combined)  

[(1, 'a', True), (2, 'b', False), (3, 'c', True)]

6. 处理不同长度的可迭代对象

用例:当列表长度不同时,zip() 会在最短的列表处停止。

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

combined = list(zip(list1, list2))
print(combined)  combined = list(zip(list1, list2))
print(combined)

[(1, 'a'), (2, 'b')]

7. 与range 一起使用

用例:将范围或序列压缩在一起。

numbers = range(1, 4)
letters = ['a', 'b', 'c']

result = list(zip(numbers, letters))
print(result)  

[(1, 'a'), (2, 'b'), (3, 'c')]

8. 比较两个列表的元素

用例:压缩两个列表来比较元素。

list1 = [1, 2, 3]
list2 = [1, 4, 3]

comparison = [a == b for a, b in zip(list1, list2)]
print(comparison)

[True, False, True]

9. 转置矩阵

用例:使用 zip() 转置二维矩阵的行和列。

matrix = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
]

transposed = list(zip(*matrix))
print(transposed) 

[(1, 4, 7), (2, 5, 8), (3, 6, 9)]

10. 使用 Enumerate 压缩

用例:使用索引配对的枚举列表进行压缩。

data = ['apple', 'banana', 'cherry']
indexed_data = list(zip(range(1, len(data) + 1), data))
print(indexed_data)
[(1, 'apple'), (2, 'banana'), (3, 'cherry')]
🏴‍☠️宝藏级🏴‍☠️ 原创公众号『数据STUDIO』内容超级硬核。公众号以Python为核心语言,垂直于数据科学领域,包括可戳👉Python|MySQL|数据分析|数据可视化|机器学习与数据挖掘|爬虫 等,从入门到进阶!

长按👇关注- 数据STUDIO -设为星标,干货速递ImageImage