python怎么交换列表中的值_如何交换Python列表中的项?

问题是编写python代码来生成数字{1,2,3,…,n}的所有排列。所以,我写这段代码:def permute(n):

if n==len(a):

print a

return

for i in range(n,len(a)):

swap(i,n)

permute(n+1)

swap(i,n)

def swap(x,y):

a[x],a[y]=a[y],a[x]

a=[1,2,3,4] #any list

permute(0)

而且效果很好。但是,由于我有空闲时间,我对它进行了一些修改,并编写了以下代码:def permute(n):

if n==len(a):

print a

return

for i in range(n,len(a)):

swap(a[i],a[n]) #modification

permute(n+1)

swap(a[i],a[n]) #modification

def swap(x,y):

x,y=y,x #modification

a=[1,2,3,4]

permute(0)

这次没用。但是在那之后,我读了一些关于在python中变量赋值是如何不同的内容。

但我还是想知道,根据你的说法,第二段代码有什么问题,这样我就可以交叉检查并讨论我认为有什么问题!这是我的第一个问题。

我的第二个问题是如何在python列表中交换值?这与简单的价值观有什么不同吗?因为上面两个代码似乎都适用。但我无法找到一种让自己理解的方法,另外,它还让我更加困惑,那就是python如何操作它的列表。

我确信在Python语言的设计中,有一些东西我不知道会导致这些混乱。帮我把它们分类,如果可能的话,使用一些图片可视化。那我就很容易明白发生了什么事!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值