在按字符交换两个字符串时出错。。。你知道吗
代码:
#Exchange names using 2-D array of characters
names=["akshay","parag","raman","srinivas","gopal","rajesh"]
print "Original:%s %s\n" % (names[2],names[3])
for i in range(0,10,1):
t=names[2][i]
names[2][i]=names[3][i]
names[3][i]=t
print "New:%s %s\n" % (names[2],names[3])
TypeError: 'str' object does not support item assignment
有什么解决办法吗?你知道吗
字符串在Python中是不可变的,您可以在此处使用^{} :
不能更新字符串,只能使用字符串方法或切片等创建新字符串
更新:
还要注意的是
bytearray
只有在与ASCII字符一起使用时才是好的,不要与非ASCII数据一起使用。你知道吗如果每个字符串至少包含10个字符,则完全可以不使用循环:
这会同时完成两个任务。在这之后,
names[2]
将从位置10开始有names[3]
的前10个字母和names[2]
的字母。同样的names[3]
。你知道吗names
是字符串列表。因此,当您执行names[2][someIndex]
操作时,您正在访问该字符串的单个字符。因此,当您执行names[2][i] = names[3][i]
操作时,您试图交换两个字符。因为Python字符串是不可变的,所以这不起作用。你知道吗除此之外,您还尝试访问不存在的字符串的索引。例如
names[2]
是raman
,所以有5个字符长。因为您将i
循环到9
,所以您最终会尝试访问'raman'[5]
、'raman'[6]
、'raman'[9]
,这些都会引发索引器。你知道吗如果要交换列表中的两个字符串,只需整体交换字符串:
或者简而言之,没有临时变量:
相关问题 更多 >
编程相关推荐