在列表中循环 | python 3
loop right in the list | python 3
好吧,我正在尝试理解某个人的代码,关键是他在他的代码中使用了(我猜)很多快捷方式,我无法真正理解他想做什么以及如何做它有效吗?
这是一段代码:
scores = [int(scores_temp) for scores_temp in
input().strip().split(' ')]
我不明白他在列表中循环?他如何定义一个值 (scores_temp)
然后在 for loop
.
中创建它
我真的不明白这是怎么回事,我该如何正确阅读这篇文章
这叫做list comprehension
。它是创建列表的快捷方式。
与此代码相同:
result = []
for scores_tempo in input().strip().split():
result.append(int(scores_temp)
因为您经常需要创建列表、字典、集合等 python 为此有一个特殊的快捷语法。也称为语法糖。
Google python list comprehension 你会得到大量与此相关的 material。查看给定的代码,我猜输入类似于 " 1 2 3 4 5 "
。您在 []
内部所做的是 运行 一个 for
循环,并使用循环变量在一个简单的行中创建一个列表
让我们分解代码。假设输入是 " 1 2 3 4 5 "
input().strip() # Strips leading and trailing spaces
>>> "1 2 3 4 5"
input().strip().split() # Splits the string by spaces and creates a list
>>> ["1", "2", "3", "4", "5"]
现在for循环;
for scores_temp in input().strip().split(' ')
现在等于
for scores_temp in ["1", "2", "3", "4", "5"]
现在 scores_temp
将在每次循环迭代时等于 "1", "2", "3"...
。你想使用变量 scores_temp
创建一个循环,通常你会这样做,
scores = []
for scores_temp in ["1", "2", "3", "4", "5"]:
scores.append(int(scores_temp)) # Convert the number string to an int
而不是上面的 3 行,在 python 中,您可以使用列表理解在一行中完成此操作。那就是[int(scores_temp) for scores_temp in input().strip().split(' ')]
.
这是 python 中非常强大的工具。您甚至可以在 []
中使用 if 条件、更多 for 循环等
例如10以内的偶数列表
[i for i in range(10) if i%2==0]
>>> [0, 2, 4, 6, 8]
扁平化列表列表
[k for j in [[1,2], [3,4]] for k in j]
>>> [1, 2, 3, 4]
好吧,我正在尝试理解某个人的代码,关键是他在他的代码中使用了(我猜)很多快捷方式,我无法真正理解他想做什么以及如何做它有效吗? 这是一段代码:
scores = [int(scores_temp) for scores_temp in
input().strip().split(' ')]
我不明白他在列表中循环?他如何定义一个值 (scores_temp)
然后在 for loop
.
我真的不明白这是怎么回事,我该如何正确阅读这篇文章
这叫做list comprehension
。它是创建列表的快捷方式。
与此代码相同:
result = []
for scores_tempo in input().strip().split():
result.append(int(scores_temp)
因为您经常需要创建列表、字典、集合等 python 为此有一个特殊的快捷语法。也称为语法糖。
Google python list comprehension 你会得到大量与此相关的 material。查看给定的代码,我猜输入类似于 " 1 2 3 4 5 "
。您在 []
内部所做的是 运行 一个 for
循环,并使用循环变量在一个简单的行中创建一个列表
让我们分解代码。假设输入是 " 1 2 3 4 5 "
input().strip() # Strips leading and trailing spaces
>>> "1 2 3 4 5"
input().strip().split() # Splits the string by spaces and creates a list
>>> ["1", "2", "3", "4", "5"]
现在for循环;
for scores_temp in input().strip().split(' ')
现在等于
for scores_temp in ["1", "2", "3", "4", "5"]
现在 scores_temp
将在每次循环迭代时等于 "1", "2", "3"...
。你想使用变量 scores_temp
创建一个循环,通常你会这样做,
scores = []
for scores_temp in ["1", "2", "3", "4", "5"]:
scores.append(int(scores_temp)) # Convert the number string to an int
而不是上面的 3 行,在 python 中,您可以使用列表理解在一行中完成此操作。那就是[int(scores_temp) for scores_temp in input().strip().split(' ')]
.
这是 python 中非常强大的工具。您甚至可以在 []
例如10以内的偶数列表
[i for i in range(10) if i%2==0]
>>> [0, 2, 4, 6, 8]
扁平化列表列表
[k for j in [[1,2], [3,4]] for k in j]
>>> [1, 2, 3, 4]