不知道如何到處尋找這一點,但是從itertools
功能izip_longest做到這一點:izip_longest與循環,而不是fillvalue
izip_longest('ABCD', 'xy', fillvalue='-')
- >Ax By C- D-
我希望可迭代庫將有東西用於iterables任意數量>Ax By Cx Dy Ex
優選地,是 -
izip_longest_better('ABCDE', 'xy')
:要這樣做用於生成數百萬個組合。我會寫我自己的,但我想我會問,因爲我確信我自己不會很pythonic。
太棒了,這是我沒有嘗試過的循環。我也能夠通過在數組上嵌套循環而不是迭代器來獲得某些工作,但這更好。我終於用了這個處理類似izip」
編輯: 與
def izip_longest_repeat(*args): if args: lists = sorted(args, key=len, reverse=True) result = list(itertools.izip(*([lists[0]] + [itertools.cycle(l) for l in lists[1:]]))) else: result = [()] return result
太棒了,這是我沒有嘗試過的循環。我也能夠通過在數組上嵌套循環而不是迭代器來獲得某些工作,但這更好。我最終使用的是這個處理類似於izip。 (列表[list] [0])列表中的列表[ 1:]])))' – adzuci 2012-03-05 20:19:49
非常重要,同時從列表中生成字典,在第一些元素中有標題! – SIslam 2016-02-06 11:36:06