gpt4 book ai didi

带有嵌套 range() 函数的 Python 片段

转载 作者:行者123 更新时间:2023-12-03 02:47:37 24 4
gpt4 key购买 nike

我试图理解以下 python 代码片段:

lst = [[c for c in range(r)] for r in range(3)] #line1
for x in lst: #line2
for y in x: #line3
if y < 2: #line4
print('*', end='') #line5

我知道像 range(3) 这样的函数本身意味着什么,但我不明白上下文。看到这段嵌套的代码有点复杂。第一行带有“lst”是最令人困惑的。为什么第一行产生以下输出:

[[], [0], [0, 1]]

line2 和 line3 如何协同工作?预先感谢您的回答。欢迎提出任何想法!

最佳答案

回复

"The first line with the 'lst' is most confusing.":

无论你在哪里看到[ ...for...],你都拥有所谓的“列表理解”。这是一种基于元素的单行循环描述构建列表的方法。例如:

list1 = [letter for letter in 'abcd'] 

list2 = []
for letter in 'abcd':
list2.append(letter)

产生相同的列表list1list2

就您而言,您有两组 [] 和两个 for 语句,因此您在列表理解中拥有一个列表理解:因此结果不仅仅是一个列表,但是一个嵌套列表。

回复

"and how does line2 and line3 works together?"

Line2 迭代列表 lst 中的所有项目。但其中每一项也是一个列表,因为您有一个嵌套列表。因此 line3 迭代该内部列表中的每个项目。

关于带有嵌套 range() 函数的 Python 片段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59293905/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com