我需要在Python中迭代一个字符串,并在某些情况下在现有字符之后添加一些空白字符。所以我需要像下面的代码(ofc,它不起作用):
for i, c in enumerate(some_string):
if c == ' ':
rand_value = random.randint(0, 2)
if rand_value == 0:
# Place two whitespaces here
elif rand_value == 1:
# Place three whitespaces here
此外,我知道在迭代它时我无法修改字符串对象。
如何在Python中编写此类代码?
示例:
输入 - "some string with whitespace characters"
可能的输出 - "some string with whitespace characters"
,"some string with whitespace characters"
,"some string with whitespace characters"
等
提前致谢。
答案 0 :(得分:4)
我会去:
import re
from random import randint
text = 'this is some example text'
for i in xrange(5):
print re.sub(' ', lambda m: m.group() * randint(1, 3), text)
给出了:
this is some example text
this is some example text
this is some example text
this is some example text
this is some example text
这就是,找到一个空格,然后用1到3个空格替换它......它应该足够直接,比循环/重新连接等更容易适应其他场景......
答案 1 :(得分:3)
简明的解决方案:
from random import choice
output = ''.join([choice([' ', ' ']) if c==' ' else c for c in input])
对于输入字符串中的每个字符,如果当前字符是空格,则输出随机选择的两个或三个空格;对于除空格以外的任何输入,复制到输出。然后,由于[list comprehension]
的结果是一个列表,请加入字符以创建一个新字符串。