【问题标题】:Producing combinations from a list从列表中生成组合
【发布时间】:2011-08-26 18:25:21
【问题描述】:

我有以下代码:

def 生产组合(文本,最大窗口宽度) 组合 = [] 对于范围内的窗口宽度(1,最大窗口宽度 + 1): 对于范围内的起始索引(len(文本)-windowWidth+1): 组合.append((文本[startingIndex:startingIndex+windowWidth])) 返回组合 产生组合((“1”,“2”,“3”,“4”,“5”,“6”,),3)

给出以下输出:

('1',) ('2',) ('3',) ('4',) ('5',) ('6',) ('1', '2') ('2', '3') ('3', '4') ('4', '5') ('5', '6') ('1', '2', '3') ('2', '3', '4') ('3', '4', '5') ('4', '5', '6')

但是我也希望这个算法给我额外的组合:

('1', '3') # 1 跳 ('2', '4') ('3', '5') ('4', '6') ('1', '4') # 2 跳 ('2', '5') ('3', '6') ('4', '7') ('1', '3', '4') # 1 和 0 的跃点 ('2', '4', '5') ('3', '5', '6') ('1', '2', '4') # 0 和 1 的跳跃 ('2', '3', '5') ('3', '4', '6') ('1', '3', '5') # 1 和 1 的跳跃 ('2', '4', '6') ('1', '2', '5') # 0 和 2 的跳跃 ('2', '3', '6') ('1', '3', '6') # 1 和 2 的跃点 ('1', '4', '5') # 2 和 0 的跳跃 ('2', '5', '6') ('1', '4', '6') # 2 和 1 的跳跃

我的函数将有一个名为 maximumHop 的新参数,以限制这些额外组合的数量。对于上面的例子,maximumHop 是 2,因为 ('1', '5') 的组合是不可能的。

有什么好的方法可以做到这一点吗?

谢谢,

巴里

【问题讨论】:

    标签: python-3.x


    【解决方案1】:
    猜你喜欢
    • 1970-01-01
    • 2019-05-05
    • 2020-01-28
    • 2019-11-02
    • 2013-04-14
    • 1970-01-01
    • 1970-01-01
    • 2013-06-16
    相关资源
    最近更新 更多