【问题标题】:How to take user input and put it in a new array within an array in python?如何获取用户输入并将其放入python数组中的新数组中?
【发布时间】:2019-04-21 20:16:59
【问题描述】:

我正在尝试将用户输入(只是一个整数列表)放入一个已经存在且其中包含一个元素的列表中。我不确定是否可以让一个列表从现有列表中的一个元素中运行。最终可能会在现有列表中添加更多元素。

代码如下:

days = ["Monday"]

days[0] = [int(x) for x in input("Please enter your schedule: ").split()]

print(days)

我希望结果会给我一个列表中的列表,但实际结果是:

days[0] = [int(x) for x in input("Please enter your schedule: ").split()]
ValueError: invalid literal for int() with base 10: '1000,'

【问题讨论】:

  • 当你被要求输入你的日程安排时,你输入了什么?如果您输入了逗号,请不要输入。只需输入1000 2000 3000 或类似空格。
  • 所以我确实从输入中取出了逗号,但我也试图在打印出来时将星期一包含在数组中,所以我将 days[0] 更改为 days[1] 但现在它向我抛出了这个错误:IndexError: list assignment index out of range 我可以尝试附加一些东西,但我不确定这是如何工作的。
  • 在命令提示符处提供 1000 2000 3000 之类的信息后,您希望几天内包含哪些内容?
  • 如果可能的话,我希望日子看起来像 ["Monday" [1000, 2000, 3000]]?
  • 你会得到 ["Monday", [1000, 2000, 3000]] - 注意 "Monday" 后面的逗号。这对你有用吗?

标签: python-3.x list input nested-lists


【解决方案1】:

你可以这样做:

days = ["Monday"]    
days.append( [int(x) for x in input("Please enter your schedule: ").split()] )
print(days)

如果你在命令提示符下提供了1000 2000 3000,那将给你["Monday", [1000, 2000, 3000]]

如果你这样做:

days = ["Monday"]

input_data = input("Please enter your schedule: ")
split_data = input_data.split()
for item in split_data:
    days.append(item)
print(days)

你会得到["Monday", 1000, 2000, 3000]

或者你可以像这样使用字典:

days = {}
days["Monday"] = [int(x) for x in input("Please enter your schedule: ").split()]
print(days)

获取{'Monday': [1000, 2000, 3000]}

【讨论】:

  • 谢谢!我相信最后一个更理想,更接近我想要的。
猜你喜欢
  • 1970-01-01
  • 2012-10-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-02
  • 2018-01-19
  • 1970-01-01
相关资源
最近更新 更多