土豆萝卜泥 2019-02-16 15:55 采纳率: 100%
浏览 11352
已采纳

Python中关于在list中使用for i in range()的问题

list = [[7 for i in range(5,8)] for i in range(4,7)]

print(list)

输出结果是
[[7, 7, 7], [7, 7, 7], [7, 7, 7]]

我看教程中for i in range(5,8)应该是由5,6,7依次赋值给i 但是为什么list最后会变成三行三列的7,能否请大佬给小白解释一下。谢谢!

  • 写回答

6条回答 默认 最新

  • HuaCode 2019-02-16 18:23
    关注

    图片说明
    从上面的图片中得出的结果就是和你上面一样,
    图片说明
    从上面的图片中得出的结果就是你所说的5,6,7,
    从而我们可以分析出,list是用[]表示的列表,第一个语句[7 for i in range(5,8)]表示子列表中生成3个数,三个数都为7,即生成了[7,7,7]这样的列表,然后将这个列表再次作为一个初始值,我们用list1 = [7,7,7]来表示;接下来就是第二个列表语句:[list1 for i in range(4,7)],如同第一个语句,同样生成三个数的列表,也就是最终结果:[[7,7,7],[7,7,7],[7,7,7]],其实那个range(5,8)和range(4,7)数字没有什么关系。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(5条)

报告相同问题?

悬赏问题

  • ¥15 Qt下使用tcp获取数据的详细操作
  • ¥15 idea右下角设置编码是灰色的
  • ¥15 全志H618ROM新增分区
  • ¥20 jupyter保存图像功能的实现
  • ¥15 在grasshopper里DrawViewportWires更改预览后,禁用电池仍然显示
  • ¥15 NAO机器人的录音程序保存问题
  • ¥15 C#读写EXCEL文件,不同编译
  • ¥15 MapReduce结果输出到HBase,一直连接不上MySQL
  • ¥15 扩散模型sd.webui使用时报错“Nonetype”
  • ¥15 stm32流水灯+呼吸灯+外部中断按键