【问题标题】:Python: Splitting string to replace a character messes up indexesPython:拆分字符串以替换字符会弄乱索引
【发布时间】:2021-10-31 20:54:45
【问题描述】:

我正在尝试制作刽子手游戏的一个版本。 我设置了单词字符串,用 + 替换元音,用 - 替换其余的,依此类推。 当我需要替换字符串中的字符时,问题就来了: 我阅读了许多关于 python 字符串替换的问题,最接近我需要的似乎是string = string[:index] + char + [index+1:]。问题是索引变得完全随机:

示例 字:stuck 格式:- - + - -

如果我发送 c: 它发现索引是 3 所以字符串应该是 string[:3] + char + string[4:] 导致- - + c - 相反,发生的是:

- c + - -

这个字符串是从索引 2 开始的吗?

代码:

交换功能

def swapChar(position, tstring, char):
    print("/////////")
    print(position)
    print(tstring).       # note 1
    print(char)
    print("////////")
    print(tstring[0 : (position+2)] + " NEWCHAR " + tstring[(position+3):])   # note 2
    first = tstring[:position-1]
    print("First: " + first)
    second = tstring [position+1:]
    print("Second: " + second)
    string = first + char + second    # note 3
    return string

注意 1:打印此信息以检查获取到函数的值是否正确,并且确实正确

/////////
3
 - - + - -
c
////////

注意 2:即使将 2 与索引相加也会导致错误的位置

 - -  NEWCHAR  - -

注意3:我也尝试过拆分拆分,但没有成功。

此外,有时我注意到选择第二个字符可能会在字符串中添加一个位置(例如,卡住,如果我输入 u,它可能会变成 - u c + - - 等等(我得到了一些单词喜欢+ - e m p i r e - + - +,完成它们))。

要么字符串拆分是随机进行的,要么我不知道它是如何完成的,我会说后者更有可能。

奖励示例日志:

Chosen Word: ruth
Letter: r
Letter: u
Letter: t
Letter: h
[ MESSAGE ] {{ /device/write }} "h"
Equivalence:  r = h
Equivalence:  u = h
Equivalence:  t = h
Equivalence:  h = h
/////////
3
 - + - -
h
////////
First:  -
Second:  - -
- h - -

如果您需要任何其他信息,请询问

【问题讨论】:

  • 你认为空格也是字符吗?字符串似乎在所有字符之间都有空格,因此在考虑索引时它们也算在内。
  • 我现在真的很笨
  • @MiquelEscobar 如果您想将其发布为答案,我会接受它
  • 哈哈哈哈这发生在我们所有人身上;)
  • @MiquelEscobar 在过去 3 个小时里我一直在尝试解决这个问题,答案是“空格”哈哈哈哈哈哈

标签: python string replace


【解决方案1】:

您是否认为空格也是字符?字符串似乎在所有字符之间都有空格,因此在考虑索引时它们也会计算在内,这会扰乱您的方法。

【讨论】:

    猜你喜欢
    • 2021-05-31
    • 2016-12-15
    • 2012-08-31
    • 1970-01-01
    • 1970-01-01
    • 2021-09-12
    • 2014-12-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多