【发布时间】:2011-12-11 21:18:04
【问题描述】:
我已经遇到过好几次了。我正在处理很多可以接受字符串列表的方法。有几次我不小心传递了一个字符串,它被分解成一个列表,每个字符都被使用,这不是我们想要的行为。
def test(a,b):
x = []
x.extend(a)
x.extend(b)
return x
x = [1,2,3,4]
我不想发生的事情:
test(x,'test')
[1, 2, 3, 4, 't', 'e', 's', 't']
我不得不求助于一种奇怪的语法:
test(x,['list'])
我希望这些隐式工作:
test(x,'list')
[1, 2, 3, 4, 'test']
test(x,['one', 'two', 'three'])
[1, 2, 3, 4, 'one', 'two', 'three']
我真的觉得有一种“pythonic”的方法可以做到这一点或涉及鸭子打字的东西,但我没有看到。我知道我可以使用 isinstance() 来检查它是否是一个字符串,但我觉得有更好的方法。
编辑:我使用的是 python 2.4.3
【问题讨论】:
-
重新解释
list.extend()的预期行为以克服与意外 输入相关的问题可能不是一个好主意。
标签: python