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. iPhone X 适配

    背景 iPhone X 刘海机于9月13日发布,给科技小春晚带来一波高潮.作为开发人员却多出来一份忧虑,iPhone X 怎么适配?我们 App 的脑袋会不会也长一刘海出来?Tabbar 会不会被圆角 ...

  2. Google mobile test

    1. 现已更新至3.0+版本: 2. 应对版本频繁的迭代更新,进行[版本监控.持续更新.反馈,开发的单元测试] 1. 多关注金字塔的底层: 2. [集成测试, Espresso, EarlGrey] ...

  3. asp.net mvc 防止重复提交

    string hiddenToken = "hiddenToken"; public void OnActionExecuting(ActionExecutingContext f ...

  4. Windows AD域升级方

    前面的博客中我谈到了网络的基本概念和网络参考模型,今天我们来谈企业中常用的技术,Windows AD 域,今天我的笔记将重点讲解Windows AD 域的升级和迁移方法,通过3个小实验进行配置,真实环 ...

  5. flush table with read lock的轻量级解决方案[原创]

    为什么要使用FTWRL   MySQL dba在日常工作中,数据备份绝对是工作频度最高的工作内容之一.当你使用逻辑方式进行备份(mydumper,mysqldump)或物理方式进行备份(percona ...

  6. centOS7-配置网络地址

    1.首先需求切换都root账户 # su #输入密码: 2.进入网络配置文件目录查看 ()进入该目录 # /etc/sysconfig/network-scripts ()查看目录下文件 # ll - ...

  7. 【Java】synchronized与lock的区别

    从Java 5之后,在java.util.concurrent.locks包下提供了另外一种方式来实现同步访问,那就是Lock. 也许有朋友会问,既然都可以通过synchronized来实现同步访问了 ...

  8. UVa 12186 树形dp

    题意  分析   白皮书 P282  例题9-12 AC代码 #include <stdio.h> #include <math.h> #include <string. ...

  9. Oracle_group by分组查询_深入

    Oracle_group by分组查询_深入 本文导读:在实际SQL应用中,经常需要进行分组聚合,即将查询对象按一定条件分组,然后对每一个组进行聚合分析.                    创建分 ...

  10. Kafka集群的搭建

    Kafka集群的搭建 node1   node2   node3 kafka须用版本(kafka-0.8.2.2),否则不兼容spark1.6 1.启动zookeeper集群node1   node2 ...