明日菜心 2015-08-27 05:50 采纳率: 100%
浏览 6486
已采纳

python传参(list类型的参数)问题

问题:
我定义一个全局变量q并初始化q=[1,2,3,4,5,6]
我写了个函数
def a(x,num):
c=[]
c.extend(x)
c[num]=num
return c

def b(q):
for i in range(5):
var=i
d=a(q,i)
print d

发现输出的d不仅仅是结尾添加一个数,中间的数的变化也不一样,是不是全局变量q发生变化了

  • 写回答

1条回答 默认 最新

  • 小邓在路上 2015-09-02 03:46
    关注

    我们用你的程序加了点打印下面是输出:
    代码:
    def a(x,num):
    c=[]
    c.extend(x)
    c[num]=num
    return c
    def b(q):
    for i in range(5):
    var=i
    d=a(q,i)
    print "d",d
    print "q",q
    print d
    输出:
    d [0, 2, 3, 4, 5, 6]
    q [1, 2, 3, 4, 5, 6]
    d [1, 1, 3, 4, 5, 6]
    q [1, 2, 3, 4, 5, 6]
    d [1, 2, 2, 4, 5, 6]
    q [1, 2, 3, 4, 5, 6]
    d [1, 2, 3, 3, 5, 6]
    q [1, 2, 3, 4, 5, 6]
    d [1, 2, 3, 4, 4, 6]
    q [1, 2, 3, 4, 5, 6]
    [1, 2, 3, 4, 4, 6]

    首先我不知道你的输出是个什么样子,但是在我看来,这个输出在正常不过了,我们只分析最后一次,最后一次的i值为4,这样在经过A函数处理时
    只是把list的第4位的值修改为4 而已,这样最后一次的输出就是:[1, 2, 3, 4, 4, 6]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 想用@vueuse 把项目动态改成深色主题,localStorge里面的vueuse-color-scheme一开始就给我改成了dark,不知道什么原因(相关搜索:背景颜色)
  • ¥20 OPENVPN连接问题
  • ¥15 flask实现搜索框访问数据库
  • ¥15 mrk3399刷完安卓11后投屏调试只能显示一个设备
  • ¥100 如何用js写一个游戏云存档
  • ¥15 ansys fluent计算闪退
  • ¥15 有关wireshark抓包的问题
  • ¥15 需要写计算过程,不要写代码,求解答,数据都在图上
  • ¥15 向数据表用newid方式插入GUID问题
  • ¥15 multisim电路设计