【问题标题】:Function don't update the list realtime python [duplicate]函数不更新列表实时python [重复]
【发布时间】:2020-11-19 22:49:24
【问题描述】:
def func(a,b):
a=a.append(b)
if a is not None:
    for i in a:
        print(i)
li=[1,2,3]
def testcall():
    c=10
    func(li,c)
if __name__=='__main__':
        test()

为什么不打印更新后的列表 即使我在测试函数中更新列表然后发送它,它也不会打印任何东西。有谁知道为什么该函数会出现这种奇怪的行为。 如果我让“func”只接受一个参数并在“test”中发送更新列表,它仍然不会显示任何内容。

【问题讨论】:

    标签: python list function arguments


    【解决方案1】:

    为了回答您“为什么不打印任何内容”的主要问题,当您执行a = a.append(b) 时,内部a.append(b) 什么都不返回,所以a 什么都没有。此外,您的代码存在一个主要问题,因为它缺少正确的缩进,并且您将对testcall() 的调用错误地命名为test()。这可能就是你想要的。

    def func(a,b):
      print(a) # [1,2,3]
      a.append(b) 
      print(a) # [1,2,3,10]
      if a is not None:
        for i in a:
          print(i)
    
    li=[1,2,3]
    
    def testcall():
      c=10
      func(li,c)
    
    if __name__=='__main__':
      testcall()
    

    您可以在 IDLE 中进行一些实验:

    >>> a = [1,2,3]
    >>> b = [4,5,6]
    >>> c = a.append(b)
    >>> c
    >>> a
    [1, 2, 3, [4, 5, 6]]
    >>> 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-02-24
      • 1970-01-01
      • 1970-01-01
      • 2017-10-16
      • 2013-03-26
      • 1970-01-01
      • 2021-06-07
      相关资源
      最近更新 更多