python – 方法中的单个字符串或字符串列表

前端之家收集整理的这篇文章主要介绍了python – 方法中的单个字符串或字符串列表前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我已经遇到了这么多次.我正在处理很多可以接受字符串列表的方法.几次我不小心传递了一个字符串,它被分解成一个列表,并使用每个字符,这不是所需的行为.
def test(a,b):
    x = []
    x.extend(a)
    x.extend(b)
    return x

x = [1,2,3,4]

我不想发生什么事情

test(x,'test')
[1,4,'t','e','s','t']

我必须诉诸一个奇怪的语法:

test(x,['list'])

我想让这些工作隐含地工作:

test(x,'list')
[1,'test']

test(x,['one','two','three'])
[1,'one','three']

我真的觉得有一个“pythonic”的方式来做这个或涉及鸭打字的东西,但我看不到它.我知道我可以使用isinstance()来检查它是否是一个字符串,但我觉得有更好的方法.

编辑:我使用的是python 2.4.3

解决方法

嗯,这可能很简单:
>>> def a(*args):
...     x=[]
...     for i in args:
...             if '__iter__' in dir(i):
...                     x+=list(i)
...             else:
...                     x.append(i)
...     return x
... 
>>> a(1,4)
[1,4]
>>> a(1,[3,4])
[1,4],'123')
[1,'123']
>>> a(1,'123',1231,(1,4))
[1,1,4]

猜你在找的Python相关文章