例如,如果我有一个列表:如何使用python打印可能的选项列表?
L = [3, 3]
我想打印: 每个索引以下可用动作:
[[3, 0], [2, 0], [1, 0], [3, 1], [2, 1], [1, 1]]
什么想法?
我试过[[i for i in lst] for lst in list]
,但这并没有工作
例如,如果我有一个列表:如何使用python打印可能的选项列表?
L = [3, 3]
我想打印: 每个索引以下可用动作:
[[3, 0], [2, 0], [1, 0], [3, 1], [2, 1], [1, 1]]
什么想法?
我试过[[i for i in lst] for lst in list]
,但这并没有工作
这是你脑子里想的是什么
my_list = [3,3]
final_list = []
for i in range(0, my_list[0] + 1):
for j in range(my_list[0], 0, -1):
final_list.append([j, i])
print(final_list)
输出:
[[3, 0], [2, 0], [1, 0], [3, 1], [2, 1], [1, 1], [3, 2], [2, 2], [1, 2], [3, 3], [2, 3], [1, 3]]
它有更多的结果比你在上市问题,但它涵盖了所有的组合
>>>import itertools as it
>>> L
[3, 3]
>>> res = [[[i,j] for j in range(L[1])] for i in range(L[0],0,-1)]
>>> print [i for i in it.chain.from_iterable(res)]
[[3, 0], [3, 1], [3, 2], [2, 0], [2, 1], [2, 2], [1, 0], [1, 1], [1, 2]]
希望能回答你的问题!
可以简单地为'范围(L [1])' –
,如果你想使用Python的方式
data = [3,3]
print([[a,b] for a in range(data[0]+1) for b in range(data[1]+1)])
输出将是
[[0, 0], [0, 1], [0, 2], [0, 3], [1, 0], [1, 1], [1, 2], [1, 3], [2, 0], [2, 1], [2, 2], [2, 3], [3, 0], [3, 1], [3, 2], [3, 3]]
编辑
我看到你没有在第一个想 '0'元素,所以只需使用range(1,data[0]+1)
data = [3,3]
print([[a,b] for a in range(1,data[0]+1) for b in range(data[1]+1)])
的输出将是
[[1, 0], [1, 1], [1, 2], [1, 3], [2, 0], [2, 1], [2, 2], [2, 3], [3, 0], [3, 1], [3, 2], [3, 3]]
庵,没有其他的答案的产生所需的结果。这样做:
>>> L = [3, 3]
>>> [[m, i] for i, n in enumerate(L) for m in range(n, 0, -1)]
[[3, 0], [2, 0], [1, 0], [3, 1], [2, 1], [1, 1]]
你能扩展一点关于如何将输入列表转换为输出列表的逻辑吗? –
不应该输出[[0,0],[0,1],[0,2],[1,0],[1,1],[1,2],[2,0], [2,1],[2,2]]是否要打印每个索引的可用移动? –
我给列表L = [3,3],我需要为每个索引创建可能的选择,例如索引0,我应该得到[3,索引0],[2,索引0],[1 ,索引0]等等每个索引 – Pepelepiu