Python:如何将用户输入解释为列表(初学者)

时间:2017-01-30 18:42:12

标签: python python-3.x

我正在尝试编写一个带有用户输入列表的函数,并将其转换为一个字符串,用逗号分隔列表中的每个值,列表中的最后一个值用"和" 。例如,列表['猫'狗'兔子'蝙蝠']将被转换为:&#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))

3 个答案:

答案 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