从用户输入中使用.extend填充空白列表

问题描述

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

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','t','b','a','l',' ','r','u','g','y','p','o']

是否可以将.extend()与来自输入的多个值一起使用?我设法使用了for循环和.append(),一次使用输入将1个项目添加到列表中。

任何帮助将不胜感激。

解决方法

如果您确定各项运动由空格分隔,则可以使用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']
,

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

T[K]

输出:

number
,

使用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

在语句为AssertionError时抛出False,或者您可以使用类似的

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

如果您需要使用精确的定界符x.split("delim")

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

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...