生成Shell Split split命名配置文件的设置名称数

发布于 2025-01-27 04:19:53 字数 790 浏览 2 评论 0原文

好的,因此,当您从终端运行拆分函数时,它会生成名称,其名称为以x开头的所有零件,然后是2个字母字母顺序的增量对。 aa,ab,acct。

我要o的是使用python和一个数字生成这些名称的列表。

n=3
#['xaa', 'xab', 'xac']

n = 5
#['xaa', 'xab', 'xac', 'xad', 'xae']

到目前为止

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

ok so when you run the split function from terminal it generates the names it names all the parts starting with an x followed by an 2 letter alphabetical incremental pair.
aa,ab,ac ect.

What I am looking to o is generate a list of these names using python and a number.

n=3
#['xaa', 'xab', 'xac']

n = 5
#['xaa', 'xab', 'xac', 'xad', 'xae']

So far I am able to generate enough base numbers off of a number but need to find a way to change the second letter I append for every instance of '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

Desired Output:

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

白云悠悠 2025-02-03 04:19:54

您可以使用string.ascii_lowercaseitertools.products.product和字符串格式来完成您想要的工作。

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

You can use string.ascii_lowercase, itertools.product, and string formatting to do what you want.

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']

If you want it as one string for printing:

print(' '.join(make_patterns(5)))
# prints:
xaa xab xac xad xae
2025-02-03 04:19:54

您可以将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())

You can split list2sring into list of chars and append it to string manually in the for loop

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())

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文