TypeError: 'str' object does not support item assignment 解决方法

引起TypeError: 'str' object does not support item assignment错误是因为尝试以索引的方式修改字符串导致的;在Python中,字符串是不可变类型,不能直接更改某一字符;

错误重现

在Python中,你可以通过数组下标来访问字符串,但不能通过这种方式进行修改

str1 = "abcdefg"

print(str1[0])

str1[0] = "A"

这段代码将造成TypeError: 'str' object does not support item assignment

修改字符串的方法

我们可以先将字符串转换成列表,然后通过索引(下标)对其进行更改,再进行组合;

str1 = "abcdefg"
str1 = list(str1)
str1[0] = "A"
str1 = ''.join(str1)
print(str1)

原创内容,如需转载,请注明出处;

本文地址: https://www.perfcode.com/p/str-object-does-not-support-item-assignment.html

分类: 计算机技术
推荐阅读:
C source files not allowed when not using cgo or SWIG: 解决办法 Go语言中,当你没有使用cgo编程,而go文件目录下却存在c文件时将引发诸如 package .: C source files not allowed when not using cgo or SWIG: main.c test.c 的错误;
没有main()函数的C语言程序 有两种方法可以不添加main()函数来运行C语言程序,第一种用#define预处理指令,第二种是使用-nostartfiles编译选项;
Golang中的结构体组合 在Go语言里,没有面向对象这个概念,自然就没有继承,但它支持结构体组合;你可以通过在结构体内嵌套结构体实现组合;
C语言交换两个变量 在C语言中交换两个变量,需要创建一个临时变量来存储其中的一个值;例如交换a,b两个值时,需创建一个临时变量保存a的值,再将b值赋予a,最后将临时变量的值赋予b,完成交换过程;
C++11使用标准库获取CPU物理核心数、动态创建线程 在本文中,将使用C++11标准线程库来获取CPU的物理核心数,并动态的创建和使用线程;
使用MATLAB求函数极限 要在 MATLAB 中求解一个函数的极限,可以使用 "limit" 函数。这个函数需要两个输入参数:要求解的函数和趋近于的值。