在python中重新排列随机字符串到辅音元音辅音元音顺序

2024-09-30 06:21:32 发布

您现在位置:Python中文网/ 问答频道 /正文

如果有一个随机字符串,比如asftiopeiopv,那么如何在一个单词中按照辅音元音辅音元音辅音模式重新排列它?在

在本例中,它将变成类似safitopepivo的内容。在

也可以包括与元音水平相同的数字。例如,使用随机字符串asft1op41opv,它将变成saf1top4p1vo。在


Tags: 字符串内容模式水平数字单词元音辅音
3条回答
  • 将输入分成两个列表,例如con和{}
  • 随机对每个列表排序(使用random.shuffle
  • 加入两个列表([con[0], vow[0], con[1], ...]
from itertools import chain, zip_longest

char_list = 'asftiopeiopv'
vowels_and_numbers = 'aeiou0123456789'
vowels, consts = [], []

for c in char_list:
    if c in vowels_and_numbers:
        vowels.append(c)
    else:
        consts.append(c)

print(''.join([c for c in chain(*zip_longest(consts, vowels)) if c]))

可能有一种更有效的方法,但这应该会产生预期的结果:

string = "asft1op41opv"
convertedString = ""

p = re.compile('[aeiou0-9]')
vowelsAndNumbers = p.findall(string)
string = p.sub("",string)

i = 0
for c in string:    
    convertedString += c + ''.join(vowelsAndNumbers[i:i+1])
    i+=1

# if remaining vowels, add to convertedString
convertedString += ''.join(vowelsAndNumbers[i:])

print convertedString

相关问题 更多 >

    热门问题