【问题标题】:Filling an empty list using .extend from a user input使用来自用户输入的 .extend 填充空列表
【发布时间】:2021-02-04 08:19:03
【问题描述】:

我想尝试使用输入功能来允许用户在列表中输入多个值。这可以使用扩展方法完成吗?这是一个简单的例子

sports = []
x = input("Enter your 3 favourite sports:")
sports.extend(x)
print(sports)

#However, this results in each letter being entered individually:

Enter your 3 favourite sports: football rugby polo
['f', 'o', 'o', 't', 'b', 'a', 'l', 'l', ' ', 'r', 'u', 'g', 'b', 'y', ' ', 'p', 'o', 'l', 'o']

有没有办法将 .extend() 与来自输入的多个值一起使用?我设法使用 for 循环和 .append() 使用输入一次将 1 项添加到列表中。

任何帮助将不胜感激。

【问题讨论】:

  • 尝试使用split(" ")

标签: python list extend


【解决方案1】:

如果您需要使用精确分隔符x.split("delim")进行拆分

sports = []
x = input("Enter your 3 favourite sports: ")
sports.extend(x.split(",")) # Here is comma
print(sports)

【讨论】:

    【解决方案2】:

    当你使用input 函数时,你会得到一个字符串作为回报。然后,您需要将其拆分为子字符串列表,每个子字符串代表一项运动:

    sports = []
    x = input("Enter your 3 favourite sports:")
    new_sports = x.split() # = x.split(" ") i.e. split using space 
    sports.extend(x)
    print(sports)
    

    如果你想确保子字符串正好是 3,你可以使用

    assert len(new_sports) == 3
    

    当语句为False 时会抛出AssertionError,或者你可以使用类似的东西

    if len(new_sports) != 3:
        print("You did not insert exactly 3 sports!")
    else:
        sports.extend(x)
    

    【讨论】:

      【解决方案3】:

      如果您确定运动项目由空格字符分隔,您可以使用str.split

      sports = []
      x = input("Enter your 3 favourite sports: ")
      sports.extend(x.split())
      print(sports)
      

      输入:

      Enter your 3 favourite sports: footbal rugby polo
      

      输出:

      ['footbal', 'rugby', 'polo']
      

      【讨论】:

        【解决方案4】:

        只需用空格分割您从用户那里获得的输入。然后,使用这些值扩展列表。这是执行此操作的完整代码:

        sports = []
        x = input("Enter your 3 favourite sports:").split(' ')
        sports.extend(x)
        print(sports)
        

        输出:

        Enter your 3 favourite sports:>? football rugby polo
        ['football', 'rugby', 'polo']
        

        【讨论】:

          猜你喜欢
          • 2018-09-16
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-10-17
          • 1970-01-01
          • 2020-06-07
          相关资源
          最近更新 更多