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. 计算机基础理论知识梳理篇(三):VLAN与VLAN网卡相关概念

    VLAN(Virtual Local Area Network) 虚拟局域网(VLAN,802.1Q)是一组逻辑上的设备和用户,这些设备和用户并不受物理位置的限制,可以根据功能.部门及应用等因素将它们 ...

  2. linux下分割文件

    split -l 115 XSMD.txt -d -a 2 XSMD.txt._   注:将一个文件XSMD.txt分割成两个文件,每个大小115

  3. keynote 代码高亮

    brew install highlight (同时会安装 Lua 和 Boost) highlight -K 18 -s Vampire -u 'utf-8' -O rtf test.html | ...

  4. 远程SCP报错,报22号口错误

    格式: scp root@ip地址/远程服务器文件地址 本地服务器地址 查看了半天发现无法联通,最终22端口不通 后来经过同事提示,忽然想到要经过跳板进行转发才能够登录. 想到自己配置了ssh文件 直 ...

  5. python模块-OS模块详解

    1.按字母分 os相关的函数:143个.按字母排序如下: ['abort', 'access', 'altsep', 'chdir', 'chmod', 'chown', 'chroot', 'clo ...

  6. [PHP] 编译构建最新版PHP源码

    获取最新PHP代码git clone https://git.php.net/repository/php-src.git构建编译环境apt-get install build-essential 编 ...

  7. 11、ABPZero系列教程之拼多多卖家工具 拼团提醒功能页面实现

    上一篇讲解了拼团提醒逻辑功能实现,现在继续实现页面功能. Core项目 打开AbpZeroTemplate-zh-CN.xml语言文件,在末尾添加如下代码: 文件路径:D:\abp version\a ...

  8. ASP.NET Core Razor中处理Ajax请求

    如何ASP.NET Core Razor中处理Ajax请求 在ASP.NET Core Razor(以下简称Razor)刚出来的时候,看了一下官方的文档,一直没怎么用过.今天闲来无事,准备用Rozor ...

  9. [bzoj2594][Wc2006]水管局长数据加强版 (lct)

    论蒟蒻的自我修养T_T.. 和noi2014魔法森林基本一样...然而数据范围大得sxbk...UPD:这题如果用lct判联通的话可能会被卡到O(mlogm)..所以最好还是用并查集吧 一开始数组开太 ...

  10. Codeforces Round #332 (Div. 2)_B. Spongebob and Joke

    B. Spongebob and Joke time limit per test 2 seconds memory limit per test 256 megabytes input standa ...