[英]Python to perl: itertools product to replace a char in string in each possible position
[英]Python - how to replace the same char in a string with random integer for each occurence
我有以下字符串作為示例
str = "TESTXXXXX"
我想用一個數字替換每個X,所以輸出應該是這樣的:
TEST98965
不是:
TEST66666
我做了以下python腳本來完成這項工作。
from sys import argv
from random import randint
bincode = argv[1].lower()
replaced = bincode.replace('x',str(randint(0,9)))
print replaced
它接受來自用戶的輸入,並用隨機數替換每個'x',這里的問題是腳本用相同的數字替換所有'x',我希望每個'x'用不同的數字替換,例如,如果用戶輸入是:
XXX
輸出將是這樣的:
986
有關如何做到這一點的任何建議?
您可以使用支持函數的re.sub
函數作為替換。 https://docs.python.org/2/library/re.html#re.sub
將為正則表達式模式的每個匹配調用該函數,並且必須生成替換。
s = "TESTXXXXX"
import re
import random
def repl_fun(match):
return str(random.randint(0,9))
replaced = re.sub('X', repl_fun, s)
print replaced
# output example:
# TEST57681
你必須每次都生成一個新的隨機整數
from sys import argv
from random import randint
bincode = argv[1].lower()
bc = ''
tgchar= 'x'
for c in bincode:
#print(c) not sure why I put this
if c != tgchar:
bc = bc + (c)
else:
bc = bc + (str(randint(0,9)))
print(bc)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.