加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

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

发布时间:2020-12-16 23:07:28 所属栏目:Python 来源:网络整理
导读:我已经遇到了这么多次.我正在处理很多可以接受字符串列表的方法.几次我不小心传递了一个字符串,它被分解成一个列表,并使用每个字符,这不是所需的行为. def test(a,b): x = [] x.extend(a) x.extend(b) return xx = [1,2,3,4] 我不想发生什么事情 test(x,'tes
我已经遇到了这么多次.我正在处理很多可以接受字符串列表的方法.几次我不小心传递了一个字符串,它被分解成一个列表,并使用每个字符,这不是所需的行为.
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]

(编辑:李大同)

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

    推荐文章
      热点阅读