python切片理解(求助)

sctjyms 2018-06-24 12:12:24
x=['h','e','l','l','o']
x[2:]=['w','w','w']
print(x)
结果为:hewww
为什么给切片赋值会改变原来的列表。内存是怎么样的,能画个内存图吗。谢谢大家
...全文
317 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
rainmann1981 2018-07-07
  • 打赏
  • 举报
回复
x[2]到最后没重新赋值,原处替换
Spring 2018-07-05
  • 打赏
  • 举报
回复
这相当于重新赋值了
yesong_zhang 2018-07-05
  • 打赏
  • 举报
回复
对制定地址内的内容赋值
chuifengde 2018-07-05
  • 打赏
  • 举报
回复
首先要了解列表属于数据可变的对像,也就是里边的内容可以随时改变的。
再看程序
x=['h','e','l','l','o']
print(x[2:])
x[2:]=['w','w','w']
print(x)
操作:如下图
第一行:
第二行:
第三行:

luoyanhanhan 2018-07-05
  • 打赏
  • 举报
回复
直接修改内存,原本放后面三个字母的内存空间被修改成了新的W字母
CrazyIdeas 2018-07-05
  • 打赏
  • 举报
回复
你这不就是相当于 赋值吗
cslpct 2018-07-04
  • 打赏
  • 举报
回复
列表是可变的序列,切片赋值就会修改原列表.
Marhesvara 2018-06-26
  • 打赏
  • 举报
回复
在python的定义中,列表是可变对象
切片的赋值操作,是直接更改原来的列表对象的
  • 打赏
  • 举报
回复
引用 1 楼 hbu_pig 的回复:
切片是直接操作内存的。原列表内容会受到影响


说的对。
欢乐的小猪 2018-06-25
  • 打赏
  • 举报
回复
切片是直接操作内存的。原列表内容会受到影响
jeky_zhang2013 2018-06-25
  • 打赏
  • 举报
回复
列表是组合对象,修改引用值会改变原始对象值
wwt65572517 2018-06-25
  • 打赏
  • 举报
回复
切片赋值本来就是对原列表的改变

37,722

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧