我有两个一线客轮。
鉴于:
>>> letters = ['a','b','c','d','e','f','g','h','i','j']
使用
enumerate
获得指数,增加'x'
每3次字母, 如 :mod(n, 3) == 2
,然后连接成字符串和list()
它。>>> list(''.join(l + 'x' * (n % 3 == 2) for n, l in enumerate(letters)))
[‘a’, ‘b’, ‘c’, ‘x’, ‘d’, ‘e’, ‘f’, ‘x’, ‘g’, ‘h’, ‘i’, ‘x’, ‘j’]
但是正如@ sancho.s所指出的,如果任何一个元素具有多个字母,则此方法将无效。
使用嵌套的理解将列表(a)的列表展平,将列表分成3组,
'x'
如果列表末尾少于3个,则添加。>>> [x for y in (letters[i:i+3] + ['x'] * (i < len(letters) - 2) for i in xrange(0, len(letters), 3)) for x in y]
[‘a’, ‘b’, ‘c’, ‘x’, ‘d’, ‘e’, ‘f’, ‘x’, ‘g’, ‘h’, ‘i’, ‘x’, ‘j’]
(a)
[item for subgroup in groups for item in subgroup]整理锯齿状的列表。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)