下面的python代码,有什么逻辑陷阱吗?

A=[]B=[[],]*5foriinrange(10):j=i%5B[j].append(i)print(B)... A=[]
B=[[],]*5
for i in range(10):
j=i%5
B[j].append(i)
print(B)
展开
 我来答
GTA小鸡
高粉答主

2019-10-18 · 醉心答题,欢迎关注
知道大有可为答主
回答量:2.6万
采纳率:78%
帮助的人:1.3亿
展开全部
B中的5个元素实际上指向同一个列表对象,通过任意一个元素对列表对象进行操作,再通过其他元素访问时都会看到更改。举例:
B = [[],] * 5
B[0].append(1)
你可能认为此时B中的内容是[[1], [], [], [], []],然而实际上B中的内容是[[1], [1], [1], [1], [1]]
fightinglife11
高粉答主

2019-10-18 · 繁杂信息太多,你要学会辨别
知道大有可为答主
回答量:1.3万
采纳率:40%
帮助的人:611万
展开全部
& 是位运算;and 是逻辑运算。

>>> a = 1

>>> b = 2

>>> #1 的二进制是 1,2的二进制是 10

>>> a&b

0

>>> a and b

2

注:a,b分别是整数1和2,以二进制表示分别为:01,10。

&运算结果的二进制为:00,即十进制的 0(按位逻辑运算)。

再如 :2&3,二进制表示为 10&11,所以结果是 10,即十进制的 2。

1 是真,2是真(整数0是否)
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
阳光的雷咩咩
2019-10-19 · TA获得超过1.4万个赞
知道大有可为答主
回答量:2.3万
采纳率:66%
帮助的人:7879万
展开全部
没说需求,也就谈不上bug
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2019-10-18
展开全部
A=[]
B=[[],]*5
for i in range(10):
j=i%5
B[j].append(i)
print(B)

结果
[[0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]]
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式