如何在 Python 中的字符串中每第 n 个字母插入数字?

How to insert number every nth letter in a string in Python?

我正在编写一个程序来加密字符串输入。我有一个随机数生成器,以及一些将随机数转换为字母的代码。我将如何在每次说第三封信之后插入这封信? IE。之前的字符串:abcdef,之后的字符串:abcldefk.

随机数生成器的代码(如果有帮助的话):

Letter = random.randrange(1,26) 

print chr(Letter + ord('A'))

您可以使用 str.joinenumerate,起始索引等于 1 并取模:

print("".join([x if i % 3 else x + random_letter for i, x in enumerate(s,1)]))

如果只想插入一个随机字母,可以使用string.ascii_lettersrandom.choice:

from random import choice
from string import ascii_letters

s = "abcdef"
print("".join([x if i % 3 else x + choice(ascii_letters) for i, x in enumerate(s,1)])

abcQdefN

我从 Padraic 的回答中得到启发,想补充一点。

import random
Letter = random.randrange(1,26) 

def encrypt_string(string, n):
    return ("".join([x if i % n else chr(Letter + ord('A')) for i, x in enumerate(string)]))

这是一个字符串 "encryption"(松散地使用它)方法,用于每个 'nth' 字母。

结果(答案可能因随机而异):

print(encrypt_string("0123456789", 2)) # Every other letter
M1M3M5M7M9

print(encrypt_string("0123456789", 3)) # Every third letter
D12D45D78D

希望对您有所帮助。