使用Python 3中的列表推导从单行输入读取整数列表以及范围

时间:2018-08-14 18:13:46

标签: python list-comprehension

如何从单行输入以及Python 3中的范围读取整数列表?

要求:读取给定列表的整数值,该整数值与单行输入之间用空格隔开,但具有给定大小的范围。

示例:

范围= 4

然后列表大小= 4

然后从大小为4的一行中读取输入列表

我在下面的列表理解语句中进行了尝试,但是它是从4行读取一个列表[即创建4个列表,每个列表代表给定行的值],而不是仅读取1个大小为4的列表

    no_of_marks = 4
    marksList = [list(int(x) for x in input().split()) for i in range(no_of_marks)]

有人可以帮助我实现我的要求吗?

2 个答案:

答案 0 :(得分:1)

分割字符串,将其分割为仅包含前n个单词,然后将其转换为整数。

marks = [int(x) for x in input().split()[:n]]

如果输入的整数少于n,这不会失败,因此您还应该检查列表的长度

if len(marks) < n:
    raise ValueError("Not enough inputs")

答案 1 :(得分:1)

您可以直接使用no_of_marks,将no_of_marks = 4 res = [int(x) for x in input().split(" ", no_of_marks)] 用作 maxsplit 参数:

this.measurementUnitsService.GetAll().subscribe(
        res => {
            this.measurementUnits = res.map(x => new MeasurementUnit(x));
        }
    )

这里有live example