已有183人关注
列表推导式看不懂,求问
发表在Python图书答疑 2021-11-25 《Python从入门到项目实践》第6章 列表和元组 99页-101页
是否精华
版块置顶:

room = []    #最大的空列表

for i in range(1,5): #楼层    添加四个楼层

    room.append([])   #添加一个空列表

    for j in range(1,8): #每一层的房间数

        room[i-1].append(i*1000+100+j)  #为每一层的列表添加元素


print(room)


结果

[[1101, 1102, 1103, 1104, 1105, 1106, 1107], [2101, 2102, 2103, 2104, 2105, 2106, 2107], [3101, 3102, 3103, 3104, 3105, 3106, 3107], [4101, 4102, 4103, 4104, 4105, 4106, 4107]]



请问 第五行room[i-1]  为啥要 i-1 呢?


我测试了一下  如果不减1的话 结果就变成这样了


[[], 1101, 1102, 1103, 1104, 1105, 1106, 1107, [], 2101, 2102, 2103, 2104, 2105, 2106, 2107, [], 3101, 3102, 3103, 3104, 3105, 3106, 3107, [], 4101, 4102, 4103, 4104, 4105, 4106, 4107]


现在学的是二维列表 和列表推导式的地方呢,这个地方想不通,有没有大佬解释一下 最好能举个例子通俗易懂一些,真心求问

分享到:
精彩评论 3
kiku
学分:317 LV5
2021-11-26
沙发

room是一个列表,[i-1]是索引,因为索引是从0开始的(room[0]就是列表的第一个元素),所以要i-1,关于代码的具体解释看这里

https://www.mingrisoft.com/postview/43558.html

无语_mrkj
学分:3155 LV11
2021-11-29
板凳

因为循环变量i的值是从1开始的,而列表的索引是从0开始的,所以需要减一。

game99258
学分:2266 LV10
2022-08-08
地板

列表索引起始位

首页上一页 1 下一页尾页 3 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照