使用Itertools生成二进制表

5 投票
4 回答
3082 浏览
提问于 2025-04-16 13:21

我现在在尝试这个

list(itertools.combinations_with_replacement('01', 2))

但是这段代码生成了这样的结果:[('0', '0'), ('0', '1'), ('1', '1')]

我还需要一个 ('1','0') 的组合,有没有办法让 itertools 也能同时处理组合和顺序呢?

4 个回答

1

如果你想把这个方法扩展到列表(而不是字符串),可以使用:

list(itertools.product(*[[0,1]]*2))

这样做会得到

[(0, 0), (0, 1), (1, 0), (1, 1)]
6

要计算一个值与它自己之间的笛卡尔积,你可以使用

itertools.product("01", repeat=2)

这样做会给你所有可能的组合。

6

请使用

list(itertools.product(*["01"] * 2))

来代替。

撰写回答