【问题标题】:python string replace using for loop with if elsepython字符串替换使用for循环与if else
【发布时间】: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

【问题讨论】:

  • 这类事情通常用正则表达式来完成。
  • 您为什么将iold 进行比较? i 是一个 intold 是一个字符串。
  • @AmitVikramSingh 实际上 old 是一个字符串数组。这里有一些严重的逻辑问题。

标签: python for-loop if-statement str-replace sequential


【解决方案1】:
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)

【讨论】:

  • 为什么需要if条件?如果字符串不存在,则无论哪种方式都不会被替换。
【解决方案2】:

您对range 的使用不正确。

rangelower(包括)到 higher(不包括)或简单地 0 到 higher(不包括)

您的i == old 条件也不正确。 (i 是一个整数,而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 不存在,则无论如何都不会被替换。

【讨论】:

  • 感谢您的快速回复,但我修改的很少。如果可以,请回答我
  • 我已经更新了答案,您可以指定要替换的参数以仅替换一个
猜你喜欢
  • 1970-01-01
  • 2021-09-16
  • 2018-04-18
  • 1970-01-01
  • 1970-01-01
  • 2015-04-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多