Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python中,如何替换索引处的字符串?_Python_Python 3.x_String_Replace - Fatal编程技术网

在python中,如何替换索引处的字符串?

在python中,如何替换索引处的字符串?,python,python-3.x,string,replace,Python,Python 3.x,String,Replace,所以我已经知道如何删除这样的索引: i = "hello!" i= i[:0] + i[1:] print(i) 'ello!' 但我如何替换它呢? 也许我现在想把一个H放在原来的H的位置,但如果我这样做: i[0]=“H” 我得到这个错误: 回溯(最近一次呼叫最后一次): 文件“”,第1行,在 i[0]=“H” TypeError:“str”对象不支持项分配 如何修复此问题?这是此问题的副本 如上所述,您必须从字符串中创建一个列表,并通过从该列表中选择一个项并重新分配一

所以我已经知道如何删除这样的索引:

i = "hello!"
i= i[:0] + i[1:]

print(i)
'ello!'
但我如何替换它呢? 也许我现在想把一个H放在原来的H的位置,但如果我这样做:
i[0]=“H”
我得到这个错误:

回溯(最近一次呼叫最后一次): 文件“”,第1行,在 i[0]=“H” TypeError:“str”对象不支持项分配


如何修复此问题?

这是此问题的副本

如上所述,您必须从字符串中创建一个列表,并通过从该列表中选择一个项并重新分配一个新值,然后在循环中重新生成字符串来更改字符

>>> s = list("Hello zorld")
>>> s
['H', 'e', 'l', 'l', 'o', ' ', 'z', 'o', 'r', 'l', 'd']
>>> s[6] = 'W'
>>> s
['H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l', 'd']
>>> "".join(s)
'Hello World'

字符串在Python中是不可变的,所以不能像
i[0]='H'
那样赋值。您可以做的是将字符串转换为列表,它是可变的,然后您可以在某个索引处分配新值

i=“你好!”
i_list=列表(i)
i_列表[0]=“H”
i_new=''。加入(i_列表)
打印(i_新)

不创建列表,您还可以执行以下操作:

i=“你好!”
i=“H”+i[1:]
更一般的:

def change_字母(字符串、字母、索引):#注意字符串实际上是变量的坏名称
返回字符串[:索引]+字母+字符串[索引+1:]
s=“你好!”
s_new=更改字母(s,“H”,0)
打印(s_新)
#应该打印“你好!”

另外请注意,还有一个内置函数
.capitalize()

,这是否回答了您的问题?尝试执行
i[0]+=“H”
我也可以这样做,而不是创建一个新变量:
s=change_字母s,“H”,0)
?当然可以。在哪个变量中存储返回值并不重要!
Hello!
i = "hello!"
print(i)  ## will print hello!
i = "H" + i[1:]
print(i) ## will print Hello!