在我的情况下,我想在列表的每5个字后添加\n
。例如:
输入:
['aa', 'bb', 'cc', 'dd', 'ee', 'ff', 'gg', 'hh', 'ii', 'jj', 'kk']
输出:
['aa', 'bb', 'cc', 'dd', 'ee', '\n', 'ff', 'gg', 'hh', 'ii', 'jj', '\n', 'kk']
我的解决方案很直观,但看起来并不简洁和诡计,所以我想听听你的想法。
def get_text(input):
output = []
for idx, w in enumerate(input):
output.append(w)
if idx !=0 and idx %4 == 0:
output.append('\n')
return output
答案 0 :(得分:0)
鉴于此输入:
lst = ['aa', 'bb', 'cc', 'dd', 'ee', 'ff', 'gg', 'hh', 'ii', 'jj', 'kk']
尝试这个,作为一个单行(假设Python 2.x):
sum([lst[i:i+5]+['\n'] for i in xrange(0, len(lst), 5)], [])[:-1]
或两行,但效率更高:
tmp = (lst[i:i+5]+['\n'] for i in xrange(0, len(lst), 5))
[item for slist in tmp for item in slist][:-1]
无论哪种方式,结果都符合预期:
=> ['aa', 'bb', 'cc', 'dd', 'ee', '\n',
'ff', 'gg', 'hh', 'ii', 'jj', '\n',
'kk']