我有一个采用字符串列表的方法。不幸的是,如果列表只有一项,Python 会将此列表视为字符串。
这篇文章有一个方法来检查某个东西是否是一个字符串,如果是,则将其转换为一个列表: Python:如何定义一个获取字符串列表或字符串的函数
但这似乎是一种非常多余的方法,可以让我作为列表传入的项目实际上是一个列表。有没有更好的办法?
我有一个采用字符串列表的方法。不幸的是,如果列表只有一项,Python 会将此列表视为字符串。
这篇文章有一个方法来检查某个东西是否是一个字符串,如果是,则将其转换为一个列表: Python:如何定义一个获取字符串列表或字符串的函数
但这似乎是一种非常多余的方法,可以让我作为列表传入的项目实际上是一个列表。有没有更好的办法?
您可能正在使用元组,而不是列表,并且忘记在单项元组文字中添加逗号。('foo')
被解释为'foo'
与您所说的内容相匹配的简单内容。但是,向单项元组文字添加逗号将解决此问题。('foo',)
返回,嗯,('foo',)
。
我不确定我是否相信你,python 不应该那样做,而且它似乎不会:
>>> def foo(lst):
print type(lst)
>>> foo(['bar'])
<type 'list'>
那篇文章是关于另一件事的,他们希望能够传递单个字符串或字符串列表,并像处理字符串列表一样处理这两种情况。如果您只传递一个列表,则始终将其视为列表应该没问题。
Python 不应该使用列表来做到这一点。但是,单例元组的语法与单例列表不同:
(1) == 1 # (1) is 1
[1] != 1 # [1] is a singleton list
(1,) != 1 # (1,) is a singleton tuple
你误会了。Python 没有对单个元素的列表进行这种转换。
双重,三重检查你是否把[]
你正在传递的物品放在周围。
如果您仍然无法使其正常工作,请向我们展示代码!