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

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

我已经遇到了这么多次.我正在处理很多可以接受字符串列表的方法.几次我不小心传递了一个字符串,它被分解成一个列表,并使用每个字符,这不是所需的行为. def test(a,b): x = [] x.extend(a) x.extend(b) return xx = [1,2,3,4] 我不想发生什么事情 test(x,test)

我已经遇到了这么多次.我正在处理很多可以接受字符串列表的方法.几次我不小心传递了一个字符串,它被分解成一个列表,并使用每个字符,这不是所需的行为.

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]

本文来自网络,不代表青岛站长网立场。转载请注明出处: https://www.0532zz.com/html/kaifa/python/20210330/17800.html
上一篇
下一篇

作者: dawei

【声明】:青岛站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

为您推荐

返回顶部