发现
问答
发起
提问
文章
文章
更多
专家
话题
财富榜
商城
Toggle navigation
首页
(current)
问答
文章
话题
商城
搜索
登录
注册
1
求解将list放在函数内定义,存入不了数值
回答问题即可获得
10
经验值,回答被采纳后即可获得
1
金币。
例如 for x in range(6):
l1=[]
l2=[]
if x%2==0:
l.append(x)
else:
l1.append(x)
print(l1,l2)
输出l1是空列表,l2只有一个元素5,求各路大神指教下,谢谢
0 条评论
分类:
默认分类
请先
登录
后评论
默认排序
时间排序
5 个回答
帅哥淦
2021-09-23 22:17
你这个循环,每循环一次,就重新给l1、l2赋值了,即每次循环就开始后,l1、l2都指向一个空列表,so,你最后打印的列表只有最后一次循环存入的值。。。。正确的做法的,把l1 = [], l2 = []放在for循环的前面
请先
登录
后评论
花瓣片儿
2021-09-23 22:17
# 把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)
请先
登录
后评论
黄文庆
2021-09-23 22:17
全局变量和局部变量要区分的呀,老铁。
况且你放的还是在循环里面,每次循环你的list都被重新赋值了。怎么会有你想要的效果呢。
请先
登录
后评论
秋叶
2021-09-23 22:17
根據你的代碼做出更改如下:
全局變量放外面
a = []
b = []
for i in range(6):
if i%2 == 0:
a.append(i)
else:
b.append(i)
print(a, b) # [0, 2, 4] [1, 3, 5]
复制代码
我有更為簡單的代碼,如下:
a = [i for i in range(6) if i%2 == 0]
b = [i for i in range(6) if i%2 == 1]
print(a, b) # [0, 2, 4] [1, 3, 5]
复制代码
请先
登录
后评论
历经传奇
2021-09-23 22:17
在函数内定义全局变量,可以用global进行声明
请先
登录
后评论
您需要登录后才可以回答问题,
登录
或者
注册
关注
5
关注
收藏
0
收藏,
633
浏览
恰你恰
提出于 2021-09-23 22:17
相似问题
×
发送私信
发给:
内容:
×
举报此文章
垃圾广告信息:
广告、推广、测试等内容
违规内容:
色情、暴力、血腥、敏感信息等内容
不友善内容:
人身攻击、挑衅辱骂、恶意行为
其他原因:
请补充说明
举报原因: