1 求解将list放在函数内定义,存入不了数值

例如 for x in range(6):
            l1=[]
            l2=[]
            if x%2==0:
                l.append(x)
            else:
                l1.append(x)
        print(l1,l2)
输出l1是空列表,l2只有一个元素5,求各路大神指教下,谢谢


请先 登录 后评论

5 个回答

帅哥淦
你这个循环,每循环一次,就重新给l1、l2赋值了,即每次循环就开始后,l1、l2都指向一个空列表,so,你最后打印的列表只有最后一次循环存入的值。。。。正确的做法的,把l1 = [], l2 = []放在for循环的前面
请先 登录 后评论
花瓣片儿
# 把l1,l2放在循环外面,还有,变量名就不要写错了,你把 l1 写成了 l.
l1 = []
l2 = []
for i in range(6):
    if x%2==0:
        l1.append(x)
    else:
        l1.append(x)
print(l1,l2)
请先 登录 后评论
黄文庆
全局变量和局部变量要区分的呀,老铁。
况且你放的还是在循环里面,每次循环你的list都被重新赋值了。怎么会有你想要的效果呢。
请先 登录 后评论
秋叶
根據你的代碼做出更改如下:
全局變量放外面
  1. a = []
  2. b = []

  3. for i in range(6):
  4.     if i%2 == 0:
  5.         a.append(i)
  6.     else:
  7.         b.append(i)

  8. print(a, b) # [0, 2, 4] [1, 3, 5]
复制代码

我有更為簡單的代碼,如下:
  1. a = [i for i in range(6) if i%2 == 0]
  2. b = [i for i in range(6) if i%2 == 1]

  3. print(a, b) # [0, 2, 4] [1, 3, 5]
复制代码
请先 登录 后评论
历经传奇
在函数内定义全局变量,可以用global进行声明
请先 登录 后评论
  • 5 关注
  • 0 收藏,100 浏览
  • 恰你恰 提出于 2021-09-23 22:17

相似问题