Python 如何有效地使用语法

Python 如何有效地使用语法,python,syntax-highlighting,Python,Syntax Highlighting,我写了一些代码。我意识到当我想扩展下面的代码时,它会使语法变得浪费。 如何使其高效 a = ['a', 'b', 'c', 'd', 'e'] b = int(input("Number of digit:\n")) #This is for 1 digit printed if b == 1: for i in a: print(i) #This is for 2 digit printed elif b == 2: for i in a: for

我写了一些代码。我意识到当我想扩展下面的代码时,它会使语法变得浪费。 如何使其高效

a = ['a', 'b', 'c', 'd', 'e']
b = int(input("Number of digit:\n"))
#This is for 1 digit printed
if b == 1:
   for i in a:
        print(i)
#This is for 2 digit printed
elif b == 2:
    for i in a:
        for j in a:
           print(i,j)

#This is for 3 digit printed
    elif b == 2:
        for i in a:
            for j in a:
                for k in a:
                   print(i,j,k)
itertools.product将简化您的代码:

import itertools

a = ['a', 'b', 'c', 'd', 'e']
b = int(input("Number of digit:\n"))

for i in itertools.product(a, repeat=b):
    print(" ".join(i))

我想这可能是一条路。这将按您希望的元素组合方式打印。阅读更多关于

进口itertools a=['a','b','c'] num=2 如果num==2: a=[itertools.producta中的x代表x,a] printa打印这个:['a','a','b','a','c','b','a','b','b','c','c','a','c','b','c','c'] 您可以使用itertools将其推广到任意b,如下所示:

import itertools

a = ['a', 'b', 'c', 'd', 'e']
b = int(input("Number of digit:\n"))

for t in itertools.product(a, repeat=b):
    print(*t)
如果要将元组保存在列表中,可以执行以下操作:

vals = list(itertools.product(a, repeat=b))

请解释一下我想让它变成两位数是什么意思?你能解释一下你个人对这个词的语法定义吗?我已经编辑过了。如何有效地编写代码请大家回答我尊重它:你能在t之前解释一下thas*的意思吗?是的,打印中的*t*t只是在参数列表中插入一个iterable。例如,如果t是元组a,b,c,那么print*t与printa,b,c相同。这将为您提供与代码中完全相同的输出格式。@Tom Karzes Wither*工作正常,带有*giving below error TypeError:join只接受一个参数3和b=3@PIG你混淆了两个不同的答案。打印工作。我的解决方案中没有人加入。我的解决方案,即您评论的解决方案,就是直接位于这些评论之上的解决方案。你正在寻找一个不同的解决方案,并试图将*添加到其中。你可能试过像print.join*t这样的东西,当然不行。print*t不起作用。。