0

我的python知识有一点小问题(新手)。我正在尝试做的事情是将字符串列表输入到变量中,然后我需要做一些循环遍历列表并从列表中返回几个字符串。

问题是我不知道如何将列表输入到变量中。

这是我尝试的代码:

x=[]
x=(input('Please enter a list of strings: '))

...然后我['car', 'house', 't-shirt', 'bicycle', 'images']假设这x将是一个带有字符串列表的变量,但事实并非如此。

请帮忙。谢谢!

4

4 回答 4

3

我假设您使用的是 Python 3(如果这是 Python 2 代码,那么您就有问题了)。

文档中:

input(...): ...该函数然后从输入中读取一行,将其转换为字符串(去除尾随的换行符),然后返回。

所以,input()返回一个字符串。不是列表或任何东西。

当然,您可以split()将字符串放在逗号上,并strip()从末尾开始使用 '[' 或 ']' 之类的字符。

于 2012-11-16T12:17:56.567 回答
2

我假设您使用的是 python 3.x。如果您尝试输入一个列表,使用input我认为即使您输入数据也会被视为字符串['car', 'house', 't-shirt', 'bicycle', 'images']

您可以尝试将数据转换为列表:

str_x = input('Please enter a list of strings: '))
x = [s.strip() for s in str_x[1:-1].split(',')]   # String to List conversion
于 2012-11-16T12:27:41.810 回答
0

这是另一种方法:

>>> x=input('Please enter a list of strings: ').split(sep=', ')
Please enter a list of strings: hi, there, stack, overflow
>>> print(x)
['hi', 'there', 'stack', 'overflow']

这样,您就可以让 input() 完成工作,因为它默认将输入作为字符串。.split() 返回一个列表,但您始终可以使用

x=list(input(...))

以防万一将来的版本决定返回一个元组。

您也可以更改分隔符,即您可以只使用逗号,而不是逗号和空格,这取决于您自己的风格。

于 2013-09-05T21:04:37.377 回答
0

在 Python 2 中,这将起作用

x=raw_input('Please enter a list of strings: ').split()
print x
于 2019-03-13T06:51:14.617 回答