python - `var = [ ... ]` 在 Python 中有什么作用?
问题描述
在我的 Python 程序中,有人告诉我这个代码片段:
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 新手,所以我不知道很多代码缩短技术或方法,所以我开始分析给出的代码段。
我对为什么部分行用方括号括起来感到困惑:[int(x) for x in input().split()]
那段代码的开头和结尾的 and 有什么[
作用?]
解决方案
这就是所谓的列表理解。
考虑您要将数字行的前 5 个数字放入列表中。
完整的代码块可以写成:
myList = []
for i in range(1, 6):
myList.append(i)
这可以在理解中缩短为:
myList = [i for i in range(1, 6)]
myList
>>> [1, 2, 3, 4, 5]
它还有其他应用程序,但它可以用来在上面的较少行中创建一个列表。
如您所见,方括号也存在于主列表中,因此它突出了正在制作列表的事实。
如果您想制作字典,可以更清楚地看到这一点。
myDict = {key: 0 for key in range(1, 6)}
myDict
>>> {1: 0, 2: 0, 3: 0, 4: 0, 5: 0}
推荐阅读
- python - Python - Matplotlib:从单轴上的多个 pcolormesh 收集数据
- javascript - 如何解决分页问题?
- django - 使用来自 cookie 的 Django 会话 ID 来验证 Vue 应用程序
- c++ - 向 CPLEX 添加约束不起作用 C++ API
- swift - 如何在 SwiftUI 中本地化多个视图
- spring - 使用 Spring JPA 以与 DB 无关的方式在存储库层中的数据库序列
- android - 用户已创建,但数据未存储在 Firebase 实时数据库中
- php - 使用 PHP 将请求 API POST 到 JSON
- react-native - 在 ReactNative 中设置时间后无法关闭 DateTimePickerModal
- c# - Chart1.Series["Series1"].Points.Clear(); 不工作