好的,当您从终端运行拆分函数时,它会生成名称,它命名所有部件,从x开始,后面跟着一个字母递增对。aa,ab,ac等
我希望o是使用python和一个数字生成这些名称的列表。
n=3
#['xaa', 'xab', 'xac']
n = 5
#['xaa', 'xab', 'xac', 'xad', 'xae']到目前为止,我能够从一个数字中生成足够多的基数,但需要找到一种方法来更改我为“z”的每个实例附加的第二个字母。
import string
n=30
myNum = round((n/26) + (0.5))
list1 = list(string.ascii_lowercase)*myNum
list1 = list1[:n]
list2sring=""
for i in list1:
list2sring=list2sring+i+" "
newstring = "a" + list2sring.strip().replace(" "," a")
print("x" + newstring.replace(" "," x"))
#xaa xab xac xad xae xaf xag xah xai xaj xak xal xam xan xao xap xaq xar xas xat xau xav xaw xax xay xaz xaa xab xac xad期望产出:
xaa xab xac xad xae xaf xag xah xai xaj xak xal xam xan xao xap xaq xar xas xat xau xav xaw xax xay xaz xba xbb xbc xbd发布于 2022-05-07 20:33:08
您可以使用string.ascii_lowercase、itertools.product和string格式来做您想做的事情。
from string import ascii_lowercase
from itertools import product
def make_patterns(n):
letters_iter = product(ascii_lowercase, ascii_lowercase)
return [
f'x{a}{b}'
for _, (a, b) in zip(range(n), letters_iter)
]
make_patterns(5)
# returns:
['xaa', 'xab', 'xac', 'xad', 'xae']如果要将其作为打印用的一条字符串:
print(' '.join(make_patterns(5)))
# prints:
xaa xab xac xad xae发布于 2022-05-07 20:34:58
可以将list2sring拆分为字符列表,并在for循环中手动将其附加到字符串中。
import string
n=30
myNum = round((n/26) + (0.5))
list1 = list(string.ascii_lowercase)*myNum
print(string.ascii_lowercase)
list1 = list1[:n]
list2sring=""
for i in list1:
list2sring=list2sring+i+" "
chars = list2sring.strip().split(" ")
newstring = ""
i = 0
for c in chars:
newstring += " x" + string.ascii_lowercase[i] + c
if c == "z":
i = (i + 1) % 26
print(newstring.strip())https://stackoverflow.com/questions/72155991
复制相似问题