python3 第十二章 - 数据类型之List(列表)
Python内置的一种数据类型是列表:list。
- list是一种有序的集合
- 可以随时添加和删除其中的元素。
- 它可以作为一个方括号内的逗号分隔值出现。
- 列表的数据项不需要具有相同的类型
创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可。如下所示:
list1 = ['Google', 1997]
list2 = [1, 2, 3, 4, 5]
list3 = ["a", "b", "c", "d"]
与字符串的索引一样,列表索引从0开始。列表可以进行截取、组合等。
1、访问列表中的值
使用下标索引来访问列表中的值,同样你也可以使用方括号的形式截取字符,如下所示:
list1 = ['Google', 1997]
list2 = [1, 2, 3, 4, 5] print("list1[0]: ", list1[0])
print("list2[1:5]: ", list2[1:5])
以上代码,输出:
list1[0]: Google
list2[1:5]: [2, 3, 4, 5]
2、更新列表
你可以对列表的数据项进行修改或更新,如下所示:
list1 = ['Google', 1997]
print("list1的第2个元素是:", list1[1]) list1[1] = 'baidu'
print("更新后的第2个元素是:", list1[1])
以上代码,输出:
list1的第2个元素是: 1997
更新后的第2个元素是: baidu
你也可以使用append()方法来添加列表项:
list1 = ['Google', 1997]
print("原始的list1:", list1) list1.append("baidu")
print("添加一个元素后,的list1:", list1)
以上代码,输出:
原始的list1: ['Google', 1997]
添加一个元素后,的list1: ['Google', 1997, 'baidu']
3、删除列表元素
可以使用 del 语句来删除列表的的元素,如下实例:
list1 = ['Google', 1997]
print("原始的list1:", list1) del list1[1]
print("删除第二个元素后的list1:", list1)
以上代码,输出:
原始的list1: ['Google', 1997]
删除第二个元素后的list1: ['Google']
4、操作符
列表对 + 和 * 的操作符与字符串相似。+ 号用于组合列表,* 号用于重复列表。
如下所示:
Python 表达式 | 结果 | 描述 |
---|---|---|
len([1, 2, 3]) | 3 | 长度 |
[1, 2, 3] + [4, 5, 6] | [1, 2, 3, 4, 5, 6] | 组合 |
['Hi!'] * 4 | ['Hi!', 'Hi!', 'Hi!', 'Hi!'] | 重复 |
3 in [1, 2, 3] | True | 元素是否存在于列表中 |
for x in [1, 2, 3]: print(x, end=" ") | 1 2 3 | 迭代 |
5、截取与拼接
列表截取与字符串操作类型,我们定义一个列表,如下:
language = ['c', 'c++', 'python'] print('读取第三个元素language[2]:',language[2])
print('从右侧开始读取倒数第二个元素language[-2]:',language[-2])
print('输出从第二个元素开始后的所有元素language[1:]:',language[1:])
以上代码,输出:
读取第三个元素language[2]: python
从右侧开始读取倒数第二个元素language[-2]: c++
输出从第二个元素开始后的所有元素language[1:]: ['c++', 'python']
6、嵌套列表
使用嵌套列表即在列表里创建其它列表,例如:
language = ['c', 'c++', 'python']
run = ['game', 'billiards']
roy =[language, run] print(roy)
以上代码,输出:
[['c', 'c++', 'python'], ['game', 'billiards']]
思考:上面嵌套列表 roy 中,如何用索引输出List中的所有元素?下面给出答案,但请尽可以在自行写出来之前不要查看:
language = ['c', 'c++', 'python']
run = ['game', 'billiards']
roy =[language, run] print(roy)
print() # 输出空行 print('roy里有两上元素:第一个元素为列表language,第二个元素为列表run')
print('那么,roy[0] 为 language,即:', roy[0])
print('那么,roy[1] 为 run,即:', roy[1])
print() # 输出空行 print('language中的第1项:', roy[0][0])
print('language中的第2项:', roy[0][1])
print('language中的第3项:', roy[0][2])
print() # 输出空行 print('run中的第1项:', roy[1][0])
print('run中的第2项:', roy[1][1])
python3 第十二章 - 数据类型之List(列表)的更多相关文章
- python3 第十四章 - 数据类型之Dictionary(字典)
在python中字典是另一种可变容器模型,且可存储任意类型对象. 字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,格式如下 ...
- python3 第二十二章 - 函数式编程之Decorator(装饰器)
前面我们说了,在python中,一切皆对象.函数也是一个对象,而且函数对象可以被赋值给变量,通过变量也能调用该函数.如: def sayHello(name): print(name + ' hell ...
- python3 第十五章 - 数据类型之Sets(集合)
python的官网里对集合的描述是: Python also includes a data type for sets. A set is an unordered collection with ...
- 《Linux命令行与shell脚本编程大全》 第二十二章 学习笔记
第二十二章:使用其他shell 什么是dash shell Debian的dash shell是ash shell的直系后代,ash shell是Unix系统上原来地Bourne shell的简化版本 ...
- 《Django By Example》第十二章 中文 翻译 (个人学习,渣翻)
书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者注:第十二章,全书最后一章,终于到这章 ...
- 《OpenCL异构并行编程实战》补充笔记散点,第五至十二章
▶ 第五章,OpenCL 的并发与执行模型 ● 内存对象与上下文相关而不是与设备相关.设备在不同设备之间的移动如下,如果 kernel 在第二个设备上运行,那么在第一个设备上产生的任何数据结果在第二个 ...
- 《Django By Example》第十二章(终章) 中文 翻译 (个人学习,渣翻)
书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者注:第十二章,全书最后一章,终于到这章 ...
- “全栈2019”Java第十二章:变量
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
- 进击的Python【第十二章】:mysql介绍与简单操作,sqlachemy介绍与简单应用
进击的Python[第十二章]:mysql介绍与简单操作,sqlachemy介绍与简单应用 一.数据库介绍 什么是数据库? 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库,每个数 ...
随机推荐
- ul li自适应居中导航
<BODY> <div class="box"> <ul class="nav"> <li>邮箱管理</l ...
- mysql字符串操作相关函数用法总结
功能用法简单例子一览表 函数 功能 用法 例子 left() 从字符串左边为边界返回相应长度的子字符串 left(str, length) mysql> select left('vssf',3 ...
- 【读书笔记】【深入理解ES6】#6-Symbol和Symbol属性
在ES5及早期版本中,JS语言包含5中原始类型: 字符串型 数字型 布尔型 null undefined ES6引入了第六种原始类型: Symbol 创建Symbol let firstName = ...
- 使用GPA针对android应用的绘制分析
使用GPA针对android应用的绘制分析 以前经常用GPA来perf端游的绘制,很多perf工具例如perfhud,pix对于加壳的程序总是束手无策,但是GPA却不受这个限制,可以自动HOOK 3D ...
- Android 线程_笔记
多线程 一.为什么要使用多线程 1.提高用户体验或避免ANR 在事件处理代码中需要使用多线程,响应时间超过5s,即会出现ANR(Application is not responding),并因为响应 ...
- Spring--AOP(面向切面)编程
AOP 切面就像一把菜刀,将Java处理业务流程进行分割,在分割处添加特定的业务处理.主要应用于声明事务.安全和缓存.在本文中,主要介绍两种切面的实现方法--Java配置和XML配置. Java配置 ...
- 我使用 Docker 部署 Celery 遇到的问题
问题1 - Sending due task 本机测试时没有问题的,但是在线上 docker 中,任务一直显示 "Sending due task".超时的任务是 Django O ...
- Hadoop(十五)MapReduce程序实例
一.统计好友对数(去重) 1.1.数据准备 joe, jon joe , kia joe, bob joe ,ali kia, joe kia ,jim kia, dee dee ,kia dee, ...
- hihoCoder 1039:字符消除(字符串处理)
#1039 : 字符消除 时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi最近在玩一个字符消除游戏.给定一个只包含大写字母"ABC"的字符串s,消 ...
- poj1258prim算法
/*poj 1258 *题意:有若干个农场,现需要将各个农场用光纤连接起来,各个农场之间连接的光纤长度也许不同, *要求求出使得将所有农场连接起来的最短光线长度 *算法分析:使用矩阵将各个农场之间的光 ...