簡體   English   中英

Python - 如何使用隨機整數替換每個出現的字符串中的相同char

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM