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

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

我不想发生什么事情

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

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

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

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

  1. test(x,'list')
  2. [1,'test']
  3.  
  4. test(x,['one','two','three'])
  5. [1,'one','three']

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

编辑:我使用的是python 2.4.3

解决方法

嗯,这可能很简单:
  1. >>> def a(*args):
  2. ... x=[]
  3. ... for i in args:
  4. ... if '__iter__' in dir(i):
  5. ... x+=list(i)
  6. ... else:
  7. ... x.append(i)
  8. ... return x
  9. ...
  10. >>> a(1,4)
  11. [1,4]
  12. >>> a(1,[3,4])
  13. [1,4],'123')
  14. [1,'123']
  15. >>> a(1,'123',1231,(1,4))
  16. [1,1,4]

猜你在找的Python相关文章