python - 没有重复和有序的数字列表

标签 python

此代码返回一个列表 [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/

相关文章:

python - 带有 GET 参数的 GAE ValueError

python - 从列表中创建 pandas 系列会耗尽内存

python - 正则表达式排除特定字符串

python - OpenCV 找不到但可以导入

Python - 将行添加到正在写入的文件的顶部

Python tabula read_pdf 打开java控制台窗口

python - Moviepy write_videofile 第二次工作但不是第一次?

python - Flask Api 解析返回错误的 xml post 请求

python - 如何强制 python 中的字典拒绝更新现有键?

python odo sql AssertionError : datashape must be Record type, 得到 0 * {...}