1
的列表的列表我有一個列表的列表,其中每個元素是單個字符:將字符串連接
ngrams = [['a', 'b', 'c', 'a', 'b', 'c', 'a', 'b', 'c'],
['a', 'a', 'a', 'b', 'b', 'b', 'c', 'c', 'c']]
由此,我想生成與內容['aa','ab','ac','ba','bb','bc','ca','cb','cc']
一個新的單一列表。每個列表中的各個元素相互追加,但是與列表的順序相反。我想出了這個(其中np = 2
):
for cnt in range(np-2,-1,-1):
thisngrams[-1] = [a+b for (a,b) in zip(thisngrams[-1],thisngrams[cnt])]
我的解決方案需要處理np
高於僅有2.我希望這是O(NP),這是不壞。有人可以提出一個更有效率和pythonic的方式來做我想做的事(或者這是一種很好的pythonic方法)?
或'map('。join,zip(* ngrams))'超過兩個! – Ryan
我想瑞恩得到了你想要的東西,但是如果你也想扭轉列表的順序,你會想'map('。join,zip(* reversed(ngrams)))' –
謝謝Carl,我只是簡單地用*來解壓ngram [:: - 1] :-) –