簡體   English   中英

python 字符串替換使用 for 循環與 if else

[英]python string replace using for loop with if else

我是 python 的新手,試圖用 if else 條件替換使用 for 循環的字符串,我有一個字符串並希望以這樣的方式替換該字符串的某些字符,即它應該獲取/選擇字符串的第一個字符並在其中搜索它們old_list 如果字符匹配,則應將該字符替換為 new_list 的字符,如果該字符不匹配,則應將字符串中的該字符(上一個)和下一個字符一起考慮,並組合搜索它們,然后再次在 old_list 中搜索,依此類推上。

它應該在這個順序中替換(從字符串中選擇字符)= 010,101,010,010,100,101,00,00,011,1101,011,00,101,010,00,011,1111,1110,00,00,00,010,101,010,替換值 = 1001,00010100, ,1001,1111,1111,100,1010101011,100,1111,1001,0000,1111,100,10100101,101010,1111,1111,1111,0000,1001,

以上述字符串為例,如果我們執行該操作,該字符串將變為最終字符串或結果字符串 = 10010000000010001111100111111111100101010101110011111001000011111001010010110101011111111111100001001

string = 01010101001010010100000111101011001010100001111111110000000010101010
old_list = ['00','011','010','101','100','1010','1011','1101','1110','1111']
new_list = ['1111','100','0000','1001','1000'1111','0101','1010101011','101010','10100101']

i = 0
for i in range((old), 0):
    if i == old:
        my_str = my_str.replace(old[i],new[i], 0)
    else:
        i = i + 1

print(my_str)

結果,字符串變為 = 10010000000010001111100111111111100101010101110011111001000011111001010010110101011111111111100001001

new = ['a ','local ','is ']
my_str = 'anindianaregreat'
old = ['an','indian','are']

for i, string in enumerate(old):
    my_str = my_str.replace(string, new[i], 1)

print(my_str)

您對range的使用不正確。

rangelower (包含)到higher (不包含)或簡單地從 0 到higher (不包含)

您的i == old條件也不正確。 i是 integer,而old是一個列表)。 還有它應該做什么?

你可以簡單地做:

for old_str, new_str in zip(old, new):
    my_str = my_str.replace(old_str, new_str, 1)

https://docs.python.org/3/library/stdtypes.html#str.replace您可以提供要替換的參數以指定要替換的次數。

不需要條件,因為如果old_str不存在,則無論如何都不會替換任何內容。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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