博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python list 初始化技巧
阅读量:4678 次
发布时间:2019-06-09

本文共 829 字,大约阅读时间需要 2 分钟。

1、一维列表

1.1 递增列表

# 初始化递增的list,与L = [i for i in range(10)] 效果相同L = range(10) # 版本变化 L = i for i in range(10) # print(L) # [0,1,2,3,4,5,6,7,8,9]

1.0 常数0列表

#初始化每项为0的一维列表 # method 1L = [[0] * 5]   # method 2 L = [[0] for i in range(5)]# print(L)#[0,0,0,0,0]

 

2、二维列表

L = [[0] * 5 for i in range(5)] L = [[[0] for i in range(5)]for i in range(5)]
#print(L) #[[0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]]

这里需要注意,虽然L = [[0] * 5] * 5,也输出同样的效果,但是不能这样做!!!

因为[0] * 5是一个一维列表的对象,再* 5的话只是把对象的引用复制了3次。什么意思呢,就是如果我们将L[0][0] = 1,再输出L如下:

L = [[0] * 5] * 5L[0][0] = 1#print(L)#[[1, 0, 0, 0, 0], [1, 0, 0, 0, 0], [1, 0, 0, 0, 0], [1, 0, 0, 0, 0], [1, 0, 0, 0, 0]]

我们只是想改变L[0][0],结果L[[n][0]全部改变了!

所以对于一位列表初始化,也建议大家用L = [[0] for i in range(5)]来代替L = [[0] * 5]

 

转载于:https://www.cnblogs.com/xiaoniu-666/p/10184184.html

你可能感兴趣的文章
Http请求的构成
查看>>
文档翻译
查看>>
JS常用扩展
查看>>
[BZOJ2963][JLOI2011]飞行路线 分层图+spfa
查看>>
setsockopt 设置socket 详细用法
查看>>
JavaScript逻辑运算符 三元表达式
查看>>
用户和角色:通用权限管理系统数据库表结构如何设计?
查看>>
安装pytorch0.4.0
查看>>
做rl_abs过程中遇到的问题
查看>>
spring多模块项目手动整合
查看>>
SpringMVC中文件的上传(上传到服务器)和下载问题(一)--------上传
查看>>
HashMap详解
查看>>
使用IntelliJ IDEA 13搭建Android集成开发环境(图文教程)
查看>>
6.24 AppCan移动开发者大会:议程重大更新,报名即将关闭
查看>>
java范型集合中的成员排序
查看>>
在.net中读写config文件的各种方法(自定义config节点)
查看>>
ZOJ Problem Set - 2165 Red and Black
查看>>
Qt 程序运行图标
查看>>
matlab Cplex使用
查看>>
(转)[unity3d]easytouch的使用
查看>>