請教,Python在一串數字中替換x為任意數,應該怎麼實現?

時間 2021-06-12 20:35:29

1樓:BHznJNs

x_str

='11x321xx7x346'

x_str

='11x321xx7x346'

# x_str = '1x2x3x4x5x6x7x8x9x0'

x_num

=x_str

.count

('x'

)result=

fora

inrange(10

**x_num):

number

=str(a

).zfill

(x_num

)x_string

=x_str

.replace

('x','-

{}-'

.format

(number[0

]),1

)forbin

range

(x_num-1

):x_string

=x_string

.replace

('x','-

{}-'

.format

(number[b

+1]),1

)result.(

x_string

)print

(result

)@grass 修改完成,效果如下圖,理論上x的位置和數量不固定都ok,並且可以用符號標註出x原來的位置

另外,我用『11x22x33x44x55x66』文字進行測試,效果如下:

分割線如果題主對程式執行速度和效能有要求的話,可以試試下面的生成器寫法

'''有四個引數,第乙個是所要轉換的字元,

第二個是要轉換的字母(預設是'x'),

第三個和第四個是字母兩旁的分隔符

'''def replace_(x_str, x='x', from_='(', to_=')') :

x_num = x_str.count(xfor a in range(10**x_numnumber = str(a).zfill(x_numx_string = x_str.

replace('x', '{}{}{}'.format(from_, number[0], to_), 1for b in range(x_num-1x_string = x_string.replace('x', '{}{}{}'.

format(from_, number[b+1], to_), 1yield x_string

# 以下為使用的例子

for x in replace_('11x321xx7x346') :

print(x)

2樓:

import math

a='11x321xx7x346'

#統計X個數

x_num = a.count("x")

#計算最大可能數

max_num = int(math.pow(10,x_num))#由上自下生成填充字串 '10000','09999',自動填充0while max_num>0:

#獲取當前填充字串'10000'

cstr = str(max_num)

#獲取當前填充字串長度

clen = len(cstr)

#計算要補0的個數

dis = x_num - clen

while dis>0cstr='0'+cstrdis-=1

#補0p = ''

#檢測原始字串,從生成字串裡依次替換

for c in aif c=='x'p=p+cstr[0cstr=cstr[1elsep+=c

print(p)

max_num-=1

時間趕,隨便寫下,沒優化,沒效能,有空再過來改改

如何把一串字串 decode 成乙個數字, 同時這個數字可以還原會字串

fyth s Hello,world i int s.encode hex 16 i 5735816763073854953388147237921L hex i 2 1 decode hex Hello,world 題主是想這樣麼? 已重置 這要看你怎麼encode了。如果按照ASCII標準的話,...

Python 中為何沒有數字到字串的自動轉換?

小咩2021 數字加字串,你想要啥結果?舉例 這兩種都說得過去吧 abc def 1 198 200 202 字元陣列自動轉換為ascii碼數字,數字不變,然後進行加法運算,matlab中的定義 abc def 1 abcdef1 數字轉文字,字串不變,然後進行合併運算,你給的定義 abc def ...

假如有一天,你突然能在別人頭頂看見一串數字,還在不停地倒計時,你第一反應會覺得這是什麼?

三更無眠 你們都以為是剩餘壽命?你們太無趣了。那串倒計時,是你和你的命中註定相遇的倒計時。有人的數字極大,所以他終其一生都在苦苦尋找,有人的數字極小,所以他能從校服到婚紗。看,那個人的數字變成0了,哎呀,你撞我了,連聲道歉都沒有嗎?一女子生氣的他旁邊的男子說到。男子漲紅了臉,說不出一句話。女子忽然笑...