【发布时间】:2020-09-09 16:13:22
【问题描述】:
在我的 Python 程序中,有人告诉我这段代码是 sn-p:
listOfNumbers = input() # (This inputs a space separated list of integers)
listOfNumbers = listOfNumbers.split()
for x in range(0, len(listOfNumbers)):
listOfNumbers[x] = int(x)
可以用这个单线代替:
listOfValues = [int(x) for x in input().split()]
我是Python新手,所以对很多代码缩短技术或方法不太了解,所以开始分析给出的sn-p。
我对为什么部分行用方括号括起来感到困惑:[int(x) for x in input().split()]
那段代码开头和结尾处的[ 和] 有什么作用?
【问题讨论】:
-
谷歌的术语是“列表理解”。
-
它向 python 表明我们正在迭代并将值附加到列表中。
-
这是一个列表理解。它使用内部 for 循环创建一个列表。
-
阅读explanation-of-how-nested-list-comprehension-works 了解一些更复杂的列表理解。另请阅读documentation
-
这不是真的。您的第一个代码根本不会更改列表的内容 - 当您在那里时,
x=int(x)仅适用于循环内的特定x。不修改原始列表。
标签: python python-3.x