2024-04-26 12:02:28 发布
网友
我有一份清单
myl = ['A','B','C','D','E','F'] #length always even
现在我想要的输出是'AB','CD','EF'
'AB','CD','EF'
我试过了
我不喜欢这样,因为我觉得这太过分了。在
那么,有没有更好的方法来实现我的输出呢。在
这个怎么样?在
>>> ["%s%s" % (myl[c], myl[c+1]) for c in range(0, 6, 2)] ['AB', 'CD', 'EF']
为什么你的方法这么复杂?基本上你可以做你所做的,但是只有一句话,像这样:
[ "".join(t) for t in zip(myl[::2], myl[1::2]) ]
不过,F.J的回答更有效。在
可以使用列表理解或生成器表达式简洁地执行此操作:
>>> myl = ['A','B','C','D','E','F'] >>> [''.join(myl[i:i+2]) for i in range(0, len(myl), 2)] ['AB', 'CD', 'EF'] >>> print '\n'.join(''.join(myl[i:i+2]) for i in range(0, len(myl), 2)) AB CD EF
对于这种特殊情况,您可以将''.join(myl[i:i+2])替换为myl[i] + myl[i+1],但是使用''.join()方法更容易实现三人或更多人的分组。在
''.join(myl[i:i+2])
myl[i] + myl[i+1]
''.join()
或者来自^{}文档的替代方案:
这个怎么样?在
为什么你的方法这么复杂?基本上你可以做你所做的,但是只有一句话,像这样:
不过,F.J的回答更有效。在
可以使用列表理解或生成器表达式简洁地执行此操作:
对于这种特殊情况,您可以将
''.join(myl[i:i+2])
替换为myl[i] + myl[i+1]
,但是使用''.join()
方法更容易实现三人或更多人的分组。在或者来自^{} 文档的替代方案:
^{pr2}$相关问题 更多 >
编程相关推荐