Python用户输入列出分隔值

时间:2018-03-06 09:35:00

标签: python list

我一直在尝试创建一个脚本:

  • 要求用户输入关键字
  • 将用户的输入存储在列表中
  • 从列表中打印每个值

当我尝试打印列表时,所有值似乎都在索引0

inputwords = input('What keywords are you looking for?').split()
inputwordslist = []

inputwordslist.append(inputwords)
inputwordslist = enumerate(inputwordslist)
print (list(inputwordslist))

下面的输出:

What keywords are you looking for?This is a test
[(0, ['This', 'is', 'a', 'test'])]

2 个答案:

答案 0 :(得分:1)

对于您问题的最简单解决方案,@ Chris_Rands已将其发布在对您的问题的评论中:.split()返回一个列表。您不必为结果单独创建一个,只需枚举split函数返回的值:

inputwords = input('What keywords are you looking for?').split()
result = list(enumerate(inputwords))
print(result)
  

您在寻找哪些关键字?这是一个单词列表   [(0,'This'),(1,'is'),(2,'a'),(3,'list'),(4,'of'),(5,'words。')]

如另一个答案中所述,最好在提示后放置一个空格,这样就会将它与用户输入的内容分开:

inputwords = input('What keywords are you looking for? ').split()

你的代码不适用于python2,input()函数实际上通过eval()运行结果字符串:

>>> input()
  

1 + 2 + 3
       6

有关详细信息,请参阅this question

如果您希望代码与python2和python3兼容,请使用以下小代码:

try:                       
    input = raw_input      
except NameError:          
    pass                   

这将确保input指向函数的python3版本。

答案 1 :(得分:0)

input(...).split() 的结果是一个列表。因此,您只需要:

inputwords = input('What keywords are you looking for?').split()
print(list(enumerate(inputwords)))

请注意,虽然这在Python 3中有效,但在Python 2中您必须使用raw_input()函数 - input需要Python表达式,并返回评估该表达式的结果。

>>> inputwords = input('What keywords are you looking for?').split()
What keywords are you looking for?This, that and the other
>>> print(list(enumerate(inputwords)))
[(0, 'This,'), (1, 'that'), (2, 'and'), (3, 'the'), (4, 'other')]

在提示字符串末尾添加一个空格有助于明确区分提示和输入。