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

2024-06-07 03:41:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图编写一个函数,它接受用户输入的列表,并将其转换为一个字符串,用逗号分隔列表中的每个值,用“and”分隔列表中的最后一个值。例如,列表['猫','狗','兔子','蝙蝠']将转换为:'猫,狗,兔子,和蝙蝠'。 如果我将一个列表分配给一个变量,然后将该变量传递给我的newString函数,那么我的代码可以工作,但是如果我将用户输入传递给我的函数,它将把用户输入中的每个字符作为单独的列表值处理。在

所以我的问题是,如何告诉Python我希望input()作为列表读取。这有可能吗?一般来说,我对Python和编程非常陌生,所以到目前为止,列表和元组是我所知道的。我现在正在学字典。我的代码印在下面,谢谢。在

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))

Tags: and函数字符串代码用户列表inputspam
3条回答

input()总是只给你一个字符串。在

您可以根据用户输入列表的方式来分析该字符串。在

例如,用户可以像'cats dogs rabbits bats'那样以空格分隔。那你就知道了

input_list = input().split()
print(listToString(input_list))

也可以在,或任何您喜欢的分隔符上拆分。在

您可以根据输入构建一个列表,并使用当前的工作代码来格式化它。在

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

如果要从用户输入中读取列表文本,请使用^{}对其进行解析:

import ast

input_list = ast.literal_eval(input()) # or ast.literal_eval(raw_input()) on Python 2

相关问题 更多 >