Skip to main content
 首页 » 编程设计

python之python中的for循环和zip

2025年05月04日24myhome

我有一段代码想要理解,我需要帮助。

import numpy as np 
Class_numbers=np.array(['a','b','c']) 
students_per_class=np.array([10,20,30]) 
print("Students counts per class:\n{}".format( 
{x: y for x, y in zip(Class_numbers, students_per_class)})) 

输出:

Students counts per class: 
{'a': 10, 'b': 20, 'c': 30} 

我的理解: 1- 我们使用 {} 和 .format(...) 将 {} 替换为 ...

这是我的问题:

Q1- 我不明白“for x, y in zip(Class_numbers, students_per_class)”。它像一个 2d for 循环吗?为什么我们需要 zipper ?我们可以有没有 zip 函数的 2d 循环吗?

Q2 - 我不明白 x:y 是如何工作的!编译自动理解 x 和 y 的定义(在“x:y”中)在该行的其余部分(例如 for 循环)中描述?

P.S:我是 MATLAB 的专家,但我是 python 的新手,有时会很困惑!

埃桑

请您参考如下方法:

zip 允许您同时迭代两个列表,例如下面的代码

letters = ['a', 'b', 'c'] 
numbers = [1, 2, 3] 
 
for letter, number in zip(letters, numbers): 
    print(f'{letter} -> {number}') 

给你作为输出

a -> 1 
b -> 2 
c -> 3 

当您使用 zip 进行迭代时,您会生成两个变量,对应于每个循环的当前值。