列表和元组的互相转换
元组不能够删改,但是支持分片、索引、相加和乘法。
如果真的有特殊需求,需要修改元组中的元素怎么办?
在这里有一个思路,可以先用 list()
函数把元组转换成列表,相当于给数据“解锁”,将元素修改完毕后,再用 tuple()
函数转换回元组,相当于“重新上锁”。
我们在下面的代码中来看看具体的操作步骤:
students = ('林黛玉', '贾宝玉', '薛宝钗')
# 用 list() 函数给数据“解锁”,生成一个相同元素的新列表
students_list = list(students)
# 在新列表中修改元素
students_list[0] = '妙玉'
# 两次给数据“上锁”
students = tuple(students_list)
print(students)
# 输出:('妙玉', '贾宝玉', '薛宝钗')
举个例子,修改元组中的错别字:
willow = (
'粉堕百花州,',
'香残燕子楼。',
'一团团逐对成逑。',
'飘泊亦如人命薄,',
'空缱绻,',
'说风流。',
'草木也知愁,',
'韶华竟百头!',
'叹今生谁舍谁收?',
'嫁与东风春不管。',
'凭尔去,',
'忍淹留。'
)
# 找出错句的位置
wrong_index = willow.index('韶华竟百头!')
# 将元组转成列表以便改动
willow_list=list(willow)
# 利用索引,将列表中错句改对
willow_list[wrong_index] = '韶华竟白头!'
# 重新转换回元组
willow=tuple(willow_list)
# 打印修改正确的元组
print(willow)