【发布时间】:2021-04-17 22:41:52
【问题描述】:
我是 python 新手,试图用 if else 条件替换使用 for 循环的字符串, 我有一个字符串,并希望以这样的方式替换该字符串的某个字符,即它应该获取/选择字符串的第一个字符并在 old_list 中搜索它们,如果字符匹配它应该用 new_list 的字符替换该字符,如果字符不匹配它应该考虑字符串的那个字符(前一个)和下一个字符并结合搜索它们并再次在 old_list 中搜索等等。
它应该在这个 oder 中替换(从字符串中选择字符)= 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,0000,0000,1000,1111,1001,1111,1111,100,1010101011,100,1111,1001,0000,1111,100,10100101,101010,1111,1111,11,1,0000,1001 /p>
如果我们执行该操作,字符串将变为上述字符串的示例 最终或结果字符串 = 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
【问题讨论】:
-
这类事情通常用正则表达式来完成。
-
您为什么将
i与old进行比较?i是一个int而old是一个字符串。 -
@AmitVikramSingh 实际上 old 是一个字符串数组。这里有一些严重的逻辑问题。
标签: python for-loop if-statement str-replace sequential