在python中更改字符串中的字符

时间:2016-07-26 09:10:56

标签: python python-3.x bytearray

在阅读此问题之前,我想发布免责声明。

我已经读过我们的函数可以直接替换字符串中的字符(string.replace),我只想尝试手动方法来实现这一点。

这是我刚写的代码。

string = bytearray("abc'defgh",'utf-8')

for value in range(0,9):
    if string[value]=='h' or string[value]=='c':
        string[value]=='i'
    else:
        print('''Word's are not the same''')


print(string.decode("utf-8"))

我也希望那些给我答案的人也解释一下有关bytearray()的内容,因为我刚看到这个函数并且我正在尝试它。

谢谢!

1 个答案:

答案 0 :(得分:0)

正如其他人所提到的,有更好的方法可以做到这一点,但我认为这是一个探索=INT(A1)+100*MOD(A1,1)/60 如何运作的学习练习。

您的bytearray测试永远不会成功。那些测试假设if是单个字符串的数组,但这不正确。 bytearray实际上是整数的数组,因此您的测试需要将bytearray中的元素与整数进行比较。您可以使用实际整数来实现,但使用带有字节对象的string测试更方便。当您进行替换时,您需要提供一个整数,否则您将收到此错误:

in

这是您的代码的新版本。我已将TypeError: an integer is required 的名称更改为string,因为它不是字符串,因此将其称为arr会让人感到困惑。

我还更改了string循环以使用for函数,该函数迭代一个可迭代对象,产生(索引,元素)对。

enumerate

<强>输出

arr = bytearray("abc'defgh", 'utf-8')

replacement = ord('i')
for i, v in enumerate(arr):
    if v in b'ch':
        arr[i] = replacement
    print(v, chr(v))

print(arr)
print(arr.decode('utf-8'))