python中交换list元素的问题

NL91 2017-11-02 10:48:45
刚学python没多久,求指点。。

先定义了swap方法
def swap(a,b):
temp=a
a=b
b=temp
return a,b
创建一个list
list=[3,5,1,2,45,12,23]
尝试交换5和1,但结果list[1]还是5,这是为何?
swap(list[1],list[2])
print (list[1])

谢谢!!
...全文
5587 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Antioque 2017-12-12
  • 打赏
  • 举报
回复
楼上对你的函数的修改是正确的 但在python中没有必要使用这种函数进行交换(这种方法一般用在C啊啥的里面) 尝试a,b = b,a python赋值语句就可实现交换
showmitouchmi 2017-11-28
  • 打赏
  • 举报
回复
list是对象,a,b只是指向对象的索引。 就像商场里面有两样东西,分别贴着两个不同的标签,你把他们的标签给调换,事物本身并不发生改变。 def swap(a,b): temp=a a=b b=temp return a,b list=[3,5,1,2,45,12,23] list[1],list[2] = swap(list[1],list[2]) print(list[1])
碧水幽幽泉 2017-11-09
  • 打赏
  • 举报
回复
原因很简单。因为你swap的是5和1,但是并不是改变list的值。 换句话说:你在使用swap(list[1],list[2]),只是从list取出两个值来,在作5和1的交换。对list本身不会产生任何影响。

3,423

社区成员

发帖
与我相关
我的任务
社区描述
其他开发语言 其他开发语言
社区管理员
  • 其他开发语言社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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