此代码返回一个列表 [0,0,0] 到 [9,9,9],它不产生重复,每个元素按从小到大的顺序排列。
def number_list():
b=[]
for position1 in range(10):
for position2 in range(10):
for position3 in range(10):
if position1<=position2 and position2<=position3:
b.append([position1, position2, position3])
return b
寻找一种更短更好的方式来编写这段代码,而不是使用多个变量(position1、position2、position3),而是只使用一个变量i
。
这是我修改代码的尝试,但我坚持执行 if
语句:
def number_list():
b=[]
for i in range(1000):
b.append(map(int, str(i).zfill(3)))
return b
最佳答案
与另一个相同的注释itertools
回答,还有另一种方式combinations_with_replacement
:
list(itertools.combinations_with_replacement(range(10), 3))
关于python - 没有重复和有序的数字列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34058251/