问题描述
我想尝试使用输入功能来允许用户在列表中输入多个值。可以使用扩展方法来完成吗?这是一个简单的例子
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)