Python:如何确保方法获取列表

时间:2012-09-09 07:32:39

标签: python

我有一个采用字符串列表的方法。不幸的是,如果列表只有一个项目,Python会将此列表视为字符串。

这篇文章有一个检查某些东西是否为字符串的方法,如果是,则将其转换为列表: Python: How to define a function that gets a list of strings OR a string

但这似乎是一种令人难以置信的冗余方式,我将作为列表传入的项目实际上作为一个列表。还有更好的方法吗?

4 个答案:

答案 0 :(得分:2)

您可能正在使用元组,而不是列表,并且忘记将逗号添加到单项元组文字中。 ('foo')被解释为简单'foo',与您所说的相符。但是,在单项元组文字中添加逗号将解决此问题。 ('foo',)返回('foo',)

答案 1 :(得分:2)

Python不应该使用列表。但是,单例元组的语法与单例列表不同:

(1) == 1                    # (1) is 1
[1] != 1                    # [1] is a singleton list
(1,) != 1                   # (1,) is a singleton tuple

答案 2 :(得分:1)

我不确定我是否相信你,python不应该这样做,而且似乎不是:

>>> def foo(lst):
    print type(lst)

>>> foo(['bar'])
<type 'list'>

该帖子与其他内容有关,他们希望能够传递单个字符串或字符串列表并处理这两种情况,就好像它们是字符串列表一样。如果你只是传递一个列表,总是把它作为一个列表来处理应该没问题。

答案 3 :(得分:0)

你错了。 Python没有对单个元素的列表进行此类转换。

Double,Triple检查您是否将[]放在要传递的项目周围。

如果仍然无法正常工作 向我们展示代码