加入收藏 | 设为首页 | 会员中心 | 我要投稿 益阳站长网 (https://www.0737zz.com/)- 图像分析、媒体智能、低代码、办公协同、区块链!
当前位置: 首页 > 编程开发 > Python > 正文

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

发布时间:2021-03-30 17:08:57 所属栏目: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]

(编辑:益阳站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读