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(列表)的更多相关文章

  1. python3 第十四章 - 数据类型之Dictionary(字典)

    在python中字典是另一种可变容器模型,且可存储任意类型对象. 字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,格式如下 ...

  2. python3 第二十二章 - 函数式编程之Decorator(装饰器)

    前面我们说了,在python中,一切皆对象.函数也是一个对象,而且函数对象可以被赋值给变量,通过变量也能调用该函数.如: def sayHello(name): print(name + ' hell ...

  3. python3 第十五章 - 数据类型之Sets(集合)

    python的官网里对集合的描述是: Python also includes a data type for sets. A set is an unordered collection with ...

  4. 《Linux命令行与shell脚本编程大全》 第二十二章 学习笔记

    第二十二章:使用其他shell 什么是dash shell Debian的dash shell是ash shell的直系后代,ash shell是Unix系统上原来地Bourne shell的简化版本 ...

  5. 《Django By Example》第十二章 中文 翻译 (个人学习,渣翻)

    书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者注:第十二章,全书最后一章,终于到这章 ...

  6. 《OpenCL异构并行编程实战》补充笔记散点,第五至十二章

    ▶ 第五章,OpenCL 的并发与执行模型 ● 内存对象与上下文相关而不是与设备相关.设备在不同设备之间的移动如下,如果 kernel 在第二个设备上运行,那么在第一个设备上产生的任何数据结果在第二个 ...

  7. 《Django By Example》第十二章(终章) 中文 翻译 (个人学习,渣翻)

    书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者注:第十二章,全书最后一章,终于到这章 ...

  8. “全栈2019”Java第十二章:变量

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  9. 进击的Python【第十二章】:mysql介绍与简单操作,sqlachemy介绍与简单应用

    进击的Python[第十二章]:mysql介绍与简单操作,sqlachemy介绍与简单应用 一.数据库介绍 什么是数据库? 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库,每个数 ...

随机推荐

  1. angular4.0项目main.ts详解

    main.ts负责引导整个angular应用的起点 // 导入enableProdMode用来关闭angular开发者模式 import { enableProdMode } from '@angul ...

  2. windows环境VS2015编译TensorFlow C++程序完全攻略

    本文参考和综合了多篇网络博客文章,加以自己的实践,最终终于在windows环境下,编译出可以用于C++程序调用tensorflow API的程序,并执行成功. 考虑到网络上关于这方面的资料还较少,特总 ...

  3. 【知了堂学习心得】浅谈c3p0连接池和dbutils工具类的使用

    1. C3P0概述 C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展.目前使用它的开源项目有Hibernate,Spring等. 2. C3P ...

  4. 登陆模块的进化史,带大家回顾java学习历程(一)

    一直在想着写点特别点的东西,让有兴趣学编程的人确实能学到点干货,今天就来随意写写. 大家在网上查找资料看到最多的demo估计就是登陆功能的演示了,为何大家偏爱拿登陆来做demo呢?因为行业应用类程序的 ...

  5. PHP错误与异常

    请一定要注意,没有特殊说明:本例 PHP Version < 7 说起PHP异常处理,大家首先会想到try-catch,那好,我们先看一段程序吧:有一个test.php文件,有一段简单的PHP程 ...

  6. MYSQL的REPLACE和ON DUPLICATE KEY UPDATE使用

    REPLACE 我们在使用数据库时可能会经常遇到这种情况.如果一个表在一个字段上建立了唯一索引,当我们再向这个表中使用已经存在的键值插入一条记录,那将会抛出一个主键冲突的错误.当然,我们可能想用新记录 ...

  7. 洛谷 P1177 【模板】快速排序【13种排序模版】

    P1177 [模板]快速排序 题目描述 利用快速排序算法将读入的N个数从小到大排序后输出. 快速排序是信息学竞赛的必备算法之一.对于快速排序不是很了解的同学可以自行上网查询相关资料,掌握后独立完成.( ...

  8. COGS 862. 二进制数01串【dp+经典二分+字符串】

    862. 二进制数01串 ★   输入文件:kimbits.in   输出文件:kimbits.out   简单对比 时间限制:1 s   内存限制:128 MB USACO/kimbits(译 by ...

  9. ZOJ 1002 DFS

    Fire Net Time Limit: 2 Seconds      Memory Limit: 65536 KB Suppose that we have a square city with s ...

  10. python3 爬淘女郎

    刚学到python 组合数据类型这里,机缘巧合之下得到了一个公开课的视频,也看了前辈写的,取其精华,去其糟粕的爬了一下: import urllibfrom urllib import request ...