我正在尝试编写一个带有用户输入列表的函数,并将其转换为一个字符串,用逗号分隔列表中的每个值,列表中的最后一个值用"和" 。例如,列表['猫'狗'兔子'蝙蝠']将被转换为:&#39 ;猫,狗,兔子和蝙蝠。 如果我将一个列表分配给一个变量,然后将该变量传递给我的newString函数,我的代码就可以工作,但如果我将一个用户输入传递给我的函数,它会将用户输入中的每个字符视为一个单独的列表值。
所以我的问题是,如何告诉Python我想将input()作为列表读取。这甚至可能吗?我对Python和编程非常陌生,所以Lists和Tuples到目前为止我所知道的很多。我现在正在学习词典。我的代码打印在下面,谢谢。
def listToString(aList):
newString = ''
for i in range(len(aList) - 1):
newString += aList[i] + ', '
newString = newString + 'and ' + aList[-1]
return(newString)
spam = list(input())
print(listToString(spam))
答案 0 :(得分:0)
input()
总是只给你一个字符串。
您可以根据用户输入列表的方式分析该字符串。
例如,用户可以输入分隔为'cats dogs rabbits bats'
的空格。然后你做
input_list = input().split()
print(listToString(input_list))
您也可以在,
或任何您喜欢的分隔符上拆分。
答案 1 :(得分:0)
如果要从用户输入中读取列表文字,请使用ast.literal_eval
对其进行解析:
import ast
input_list = ast.literal_eval(input()) # or ast.literal_eval(raw_input()) on Python 2
答案 2 :(得分:0)
您可以根据输入构建一个列表,并使用当前的工作代码进行格式化。
def get_user_input():
my_list = []
print('Please input one word for line, leave an empty line to finish.')
while True:
word = input().strip()
if word:
my_list.append(word)
else:
break
return my_list