【问题标题】:Read an integer list from single line input along with a range using list comprehension in Python 3在 Python 3 中使用列表理解从单行输入中读取整数列表以及范围
【发布时间】:2019-01-21 16:04:23
【问题描述】:

如何从单行输入中读取整数列表以及 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)]

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

【问题讨论】:

    标签: python list-comprehension


    【解决方案1】:

    分割字符串,将其分割为只取第一个 n 单词,然后将它们转换为整数。

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

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

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

    【讨论】:

    • 这个答案也有效.. 可用于列表切片.. 谢谢@patrick-haugh
    【解决方案2】:

    你可以直接使用str.split,传递no_of_marks作为ma​​xsplit参数:

    no_of_marks = 4
    res = [int(x) for x in input().split(" ", no_of_marks)] 
    

    这里有live example

    【讨论】:

    • 完美,正如我所料。谢谢@Netwave!
    • @HarshaGV,很高兴看到它对您有所帮助,请考虑阅读此内容,以便您也可以合作:stackoverflow.com/help/someone-answers
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多