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

python – 将列表的元素与所有可能的分隔符组合在一起

发布时间:2020-12-20 11:34:30 所属栏目:Python 来源:网络整理
导读:我有以下要求. 我有一个列表,说有3个元素[X,Y,2] 我想要做的是在每个元素之间生成带有分隔符(比如说“ – ”)的字符串.应保留数组中元素的顺序. 所以输出将是: 'XY2''X-Y-2''X-Y2''XY-2' 在python中有一种优雅的方式吗? 解决方法 import itertools for c i
我有以下要求.

我有一个列表,说有3个元素[X,Y,2]

我想要做的是在每个元素之间生成带有分隔符(比如说“ – ”)的字符串.应保留数组中元素的顺序.

所以输出将是:

'XY2'
'X-Y-2'
'X-Y2'
'XY-2'

在python中有一种优雅的方式吗?

解决方法

>>> import itertools
>>> for c in itertools.product(' -',repeat=2): print ('X%sY%s2' % c).replace(' ','')
XY2
XY-2
X-Y2
X-Y-2

或者,来自python列表的元素:

import itertools
a = ['X','Y',2]
for c in itertools.product(' -',repeat=2):
    print ('%s%s%s%s%s' % (a[0],c[0],a[1],c[1],a[2])).replace(' ','')

或者,风格略有不同:

import itertools
a = ['X','2']
for c in itertools.product(' -',repeat=2):
    print ( '%s'.join(a) % c ).replace(' ','')

要将输出捕获到列表:

import itertools
a = ['X','2']
output = []
for c in itertools.product(' -',repeat=len(a)-1):
   output.append( ('%s'.join(a) % c).replace(' ','') )
print 'output=',output

(编辑:李大同)

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

    推荐文章
      热点阅读