首页 > 解决方案 > n 的 int(n) 是什么意思?

问题描述

为了将输入放入列表中:

  numbersList = [int(n) for n in input('Enter numbers: ').split()]

有人能解释一下'int(n) for n in'是什么意思吗?

我该如何改进这个问题?

标签: python-3.x

解决方案


整个表达式称为列表理解。这是一种更简单的 Pythonic 方法来构造一个遍历列表的 for 循环。

https://www.pythonforbeginners.com/basics/list-comprehensions-in-python

鉴于您的代码:

numbersList = [int(n) for n in input('Enter numbers: ').split()]

假设您运行提供的代码,您会收到输入提示:

Enter numbers: 10 8 25 33

现在发生的是,Python 的 input() 函数返回一个字符串,如此处所述:

https://docs.python.org/3/library/functions.html#input

所以代码现在基本上变成了这样:

numbersList = [int(n) for n in "10 8 25 33".split()]

现在 split() 函数从给定字符分隔的字符串中返回一个元素数组,作为字符串。

https://www.pythonforbeginners.com/dictionary/python-split

所以现在你的代码变成了:

numbersList = [int(n) for n in ["10", "8", "25", "33"]]

这段代码现在相当于:

numbersAsStringsList = ["10", "8", "25", "33"]
numberList = []
for n in numbersAsStringsList:
    numberList.append(int(n))

int(n) 方法将参数 n 从字符串转换为 int 并返回 int。

https://docs.python.org/3/library/functions.html#int


推荐阅读