我有一个列表,其中每个元素都是一个字符:
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']
。每个列表的各个元素彼此附加,但顺序与列表相反。我想到了这个(wherenp = 2
):
for cnt in range(np-2,-1,-1):
thisngrams[-1] = [a+b for (a,b) in zip(thisngrams[-1],thisngrams[cnt])]
我的解决方案需要处理高于2的np
。我想这是O(np),不错。有没有人能提出一个更有效的方法来做我想做的事情(或者这是一个很好的方法)?你知道吗
你可以试试这个:
输出:
对于两个以上的元素:
输出:
相关问题 更多 >
编程相关推荐