Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何删除0';如果号码不需要,请在号码前添加?_Python_Python 3.x - Fatal编程技术网

Python 如何删除0';如果号码不需要,请在号码前添加?

Python 如何删除0';如果号码不需要,请在号码前添加?,python,python-3.x,Python,Python 3.x,我正在制作一个程序,打印从0到9的所有可能的数字混合,如果输出少于6位,我想删除代码中放在实际数字之前的数字 我曾尝试在每个数组中将“”置于0之前,但它也会在输出中放置随机空格 Class1 = [0,1,2,3,4,5,6,7,8,9] Class2 = [0,1,2,3,4,5,6,7,8,9] Class3 = [0,1,2,3,4,5,6,7,8,9] Class4 = [0,1,2,3,4,5,6,7,8,9] Class5 = [0,1,2,3,4,5,6,7,8,9] Class6

我正在制作一个程序,打印从0到9的所有可能的数字混合,如果输出少于6位,我想删除代码中放在实际数字之前的数字

我曾尝试在每个数组中将“”置于0之前,但它也会在输出中放置随机空格

Class1 = [0,1,2,3,4,5,6,7,8,9]
Class2 = [0,1,2,3,4,5,6,7,8,9]
Class3 = [0,1,2,3,4,5,6,7,8,9]
Class4 = [0,1,2,3,4,5,6,7,8,9]
Class5 = [0,1,2,3,4,5,6,7,8,9]
Class6 = [0,1,2,3,4,5,6,7,8,9]

for i in Class1:
    for j in Class2:
        for k in Class3:
            for l in Class4:
                for m in Class5:
                    for n in Class6:
                        print (i,j,k,l,m,n)
所以我希望它输出895,而不是000895。它会一直持续到100000,但这是合乎逻辑的。

替换:

print (i,j,k,l,m,n)
作者:


虽然下面的代码可以帮助您使用您在问题中采用的类似方法,但我建议您使用另一种方法来实现您的目标:

Class1 = [0,1,2,3,4,5,6,7,8,9]
Class2 = [0,1,2,3,4,5,6,7,8,9]
Class3 = [0,1,2,3,4,5,6,7,8,9]
Class4 = [0,1,2,3,4,5,6,7,8,9]
Class5 = [0,1,2,3,4,5,6,7,8,9]
Class6 = [0,1,2,3,4,5,6,7,8,9]

for i in Class1:
    for j in Class2:
        for k in Class3:
            for l in Class4:
                for m in Class5:
                    for n in Class6:
                        print(int(''.join([str(i),str(j),str(k),str(l),str(m),str(n)])))
上述方法使用的技巧是将单个数字转换为字符串,将它们与
join()
string方法连接起来,然后将它们重新转换为
int
。这样,像
'0000001'
这样的字符串将转换为
1

但更好的方法是使用相同的技巧:

import itertools
for seq in itertools.product([0,1,2,3,4,5,6,7,8,9], repeat=6):
    print(int(''.join([str(s) for s in seq])))

这里是
join()
我用于简洁。

我在范围(1000000)内的
有什么问题:打印(I)
?为什么需要6个具有相同内容的列表?您可以多次迭代同一列表。。。您的输出还将在每个数字之间添加一个空格。。。在一个范围内进行打印会更简单-如果需要数字,请对范围(1000000)内的i使用
:print(*str(i))
-只需
print(i)
-或使用
print(i)
(str(i´,sep=“-”)放置在数字之间
print'\n'。连接(map(str,range(1000000)))
很酷不?这很好,但我得到的所有解决方案都比我的代码慢一点。我想知道是否可以使用多线程来解决这个问题,如果可以,怎么能不打印10^6个数字很耗时。在并行化的情况下,
多处理
可能是比多线程更好的选择。在这种情况下,我考虑定义10个进程,将每个进程分配一个数字作为其输出的最后一位,如
xxxxxx 1
xxxxxx 2
,…将解决您的问题。
import itertools
for seq in itertools.product([0,1,2,3,4,5,6,7,8,9], repeat=6):
    print(int(''.join([str(s) for s in seq])))