『Python基础-8』列表
『Python基础-8』列表
1. 列表的基本概念
- 列表让你能够在一个地方存储成组的信息,其中可以只包含几个 元素,也可以包含数百万个元素。
- 列表由一系列按特定顺序排列的元素组成。你可以创建包含字母表中所有字母、数字0~9或 所有家庭成员姓名的列表;也可以将任何东西加入列表中,其中的元素之间可以没有任何关系。
- 鉴于列表通常包含多个元素,给列表指定一个表示复数的名称(如letters、digits或names)是 个不错的主意。
- 格式:
列表名=[元素1,元素2,元素3]- 用方括号
[]括起来表示列表, 用逗号,分隔其中的元素. - 通过列表的小标访问列表元素
- 用方括号
nameslist = ['xiaoWang',2,'xiaoHua']
testlist = [1, 'a']
print(nameslist)
print(testlist[0])
运行结果:
['xiaoWang', 2, 'xiaoHua']
1
2. 创建列表
创建列表和创建变量的方式是一样的:
1.创建一个普通列表:
list1 = [1,2,3]
2.创建一个复合列表:
list2 = [43, "字符串", -0.87,[1,2]]
3.创建一个空列表:
list3 = []
3. 增加列表元素: append,extend,insert
(1)方法append()会将元素追加在列表的末尾
(2)方法insert()会在指定下标位置插入元素,需要指定新加入元素的索引和值
(3)方法extend()可以将另一个集合的元素逐一加入列表中
list_a = ["a","b","c"]
list_a.append("d")
print(list_a)
list_a.insert(1,"e")
print(list_a)
list_b = ["c","d"]
list_a.extend(list_b)
print(list_a)
运行结果如下:
['a', 'b', 'c', 'd']
['a', 'e', 'b', 'c', 'd']
['a', 'e', 'b', 'c', 'd', 'c', 'd']
[注意]:
append 也可以把另一个集合添加到列表里,但是这整个集合会被视为一个元素来添加:
list_a = ["a","b","c"]
list_b = ["c","d"]
list_a.append(list_a)
运行结果如下:
['a', 'b', 'c', ['c', 'd']]
4. 修改列表元素: 下标,重新复制
(1).根据下标修改列表的元素
nameslist = ["小新","正南","阿呆"]
print(nameslist)
nameslist[1] = "风间"
print(nameslist)
运行结果如下
['小新', '正南', '阿呆']
['小新', '风间', '阿呆']
(2).也可以通过切片修改列表中一部分的元素:
nameslist = ["小新","正南","阿呆"]
print(nameslist)
nameslist[1:3] = ["美芽","广志"]
print(nameslist)
运行结果如下:
['小新', '正南', '阿呆']
['小新', '美芽', '广志']
Tips: 要想取到最后一位下标所在的元素即包含进去,可行方法是,取切片范围时,结束下标写最大下标+1.
例如上边的例子,列表最大下标为2,切片取列表最后两个元素替换时,切边范围写[1:3],可以成功替换列表最后两个元素,不会报错.
5. 删除列表元素: del,remove,pop
(1)使用del语句根据删除指定元素.
- ~ 使用del可删除任何位置处的列表元素,条件是知道其索引.
- 使用del语句删除后,被删除的列表中的元素将无法再访问
del是语句, 后边不要加括号什么的del后加列表名,会把整个列表从内存删掉.
list1 = ["熊大","熊二","光头强"]
print(list1)
del list1[1]
print(list1)
运行结果:
['熊大', '熊二', '光头强']
['熊大', '光头强']
(2)使用方法.remove()根据值删除元素.
- ~ 不知道要从列表中删除的值所处的位置。如果你只知道要删除的元素的值,可使 用方法
remove()。 - 方法remove()只删除第一个指定的值。如果要删除的值可能在列表中出现多次,就需要使用循环来判断是否删除了所有这样的值。
list1 = ["熊大","熊二","光头强"]
print(list1)
list1.remove("光头强")
print(list1)
运行结果:
['熊大', '熊二', '光头强']
['熊大', '熊二']
(3)使用方法 .pop()删除列表元素,并获取被删除的值
- ~ 使用
方法 .pop()默认删除最后一个元素,可以通过下标删除指定位置的元素 - 使用
方法 .pop()可以把元素从列表删除后,继续使用它的值
~使用方法.pop(),运行后,控制台会返回被删除的值 (Del和remove不会),所以我们可以利用这个特性,给被删除的元素重新赋值,成为新的变量.
list2 = ["Dell","Apple","Lenovo","Sony","Asus"]
print("原始列表是:",list2)
brand = list2.pop(3) #给被删除的元素重新赋值
print("被删除的元素是:",brand)
运行结果如下:
原始列表是: ['Dell', 'Apple', 'Lenovo', 'Sony', 'Asus']
被删除的元素是: Sony
Tips:如果你要从列表中删除一个元素,且不再以任何方式使用它,就使用del语句;如果你要在删除元素后还能继续 使用它,就使用方法pop()。
6. 查询元素是否在列表里: in, not in
~查看某元素是否存在有列表中,返回的结果是布尔值: True /False
list3 = ["张三","李四","赵六","冯七","朱八"]
first_result = "王五" in list3
second_result = "王五" not in list3
print(first_result,second_result)
运行结果如下:
False True
7. 对列表内元素排序: .sort()永久性排序,sorted()临时性排序
Python list内置sort()方法用来排序,也可以用python内置的全局sorted()方法来对可迭代的序列排序生成新的序列。
(1)使用方法.sort()对列表进行永久性排序
- ~ 对列表内的元素按升序排序
方法.sort()会永久性地修改了列表元素的排列顺序,无法恢复到原来的排列顺序- 向.sort()方法传递参数
reverse=True可以翻转以默认升序排列的元素列,即翻转为降序排列.(同样,对列表元素排列顺序的修改是永久性的)
list1 = ["six","five", "one", "two"]
list1.sort() #对list1进行排序
print(list1)
list1.sort(reverse=True) # 反转已经重新排序过的list1
print(list1)
运行结果:
['five', 'one', 'six', 'two']
['two', 'six', 'one', 'five']
(2)使用函数sorted()对列表进行临时排序
要保留列表元素原来的排列顺序,同时以特定的顺序呈现它们,可使用函数sorted()
函数 sorted()让你能够按特定顺序显示列表元素,同时不影响它们在列表中的原始排列顺序。
cars = ['bmw', 'audi', 'toyota', 'subaru']
print("Here is the original list:")
print(cars)
print("Here is the sorted list:")
print(sorted(cars))
print("Here is the original list again:")
print(cars)
运行结果:
Here is the original list: ['bmw', 'audi', 'toyota', 'subaru']
Here is the sorted list: ['audi', 'bmw', 'subaru', 'toyota']
Here is the original list again: ['bmw', 'audi', 'toyota', 'subaru']
[注意]:
在并非所有的值都是小写时,按字母顺序排列列表要复杂些。决定排列顺序时,有多种 解读大写字母的方式,要指定准确的排列顺序,可能比我们这里所做的要复杂。然而, 大多数排序方式都基于本节介绍的知识。
8. 倒着打印列表
要反转列表元素的排列顺序,可使用方法reverse()。
注意,reverse()不是指按与字母顺序相反的顺序排列列表元素,而只是反转列表元素的排 列顺序
方法reverse()永久性地修改列表元素的排列顺序,但可随时恢复到原来的排列顺序,为此 只需对列表再次调用reverse()即可。
cars = ['bmw', 'audi', 'toyota', 'subaru'] 3
print(cars)
cars.reverse()
print(cars)
运行结果:
['bmw', 'audi', 'toyota', 'subaru']
['subaru', 'toyota', 'audi', 'bmw']
9. 确定列表的长度
使用函数len()可快速获悉列表的长度。在下面的示例中,列表包含4个元素,因此其长度为4:
cars = ['bmw', 'audi', 'toyota', 'subaru']
len(cars) #运行结果:4
在你需要完成如下任务时,len()很有用: 需要管理多少 项可视化数据,网站有多少注册用户等。
[注意:]Python计算列表元素数时从1开始,因此确定列表长度时,你应该不会遇到差一错误.
10. 使用range()创建数字列表
要创建数字列表,可使用函数list()将range()的结果直接转换为列表.如果将range()作为list()的参数,输出将为一个数字列表.
使用函数range()时,还可指定步长。例如,下面的代码打印1~10内的偶数:
numbers = list(range(1,6))
print(numbers) #[1,2,3,4,5]
even_numbers = list(range(2,11,2))
print(even_numbers) #[2,4,6,8,10]
11. 对数字列表执行简单的统计计算
有几个专门用于处理数字列表的Python函数。例如,你可以轻松地找出数字列表的最大值,最小值和总和:
digits = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
print (min(digits)) #0
print(max(digits)) #9
print(sum(digits)) #45
---------------基本列表操作---------------
| 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 | 迭代 |
---------------列表索引,切片和矩阵---------------
假设以下输入 : List = ['C++'', 'Java', 'Python']
| Python表达式 | 结果 | 描述 |
|---|---|---|
| L[2] | 'Python' | 偏移量,从零开始 |
| L[-2] | 'Java' | 负数:从右到右 |
| L[1:] | ['Java', 'Python'] | 切片提取部分 |
---------------Python内置列表函数功能---------------
| 方法 | 描述 |
|---|---|
| cmp(list1, list2) | 在Python 3中不再可用。 |
| len(list) | 给出列表的总长度。 |
| max(list) | 从列表中返回最大值的项目。 |
| min(list) | 从列表中返回最小值的项目。 |
| list(seq) | 将元组转换为列表。 |
---------------Python内置列表方法---------------
| 方法 | 描述 |
|---|---|
| list.append(obj) | 将对象obj追加到列表中 |
| list.count(obj) | 返回列表中出现多少次obj的计数 |
| list.extend(seq) | 返回列表中出现多少次obj的计数 |
| list.extend(seq) | 将seq的内容附加到列表中 |
| list.insert(index, obj) | 将对象obj插入到偏移索引的列表中 |
| list.pop(obj = list[-1]) | 从列表中删除并返回最后一个对象或obj |
| list.remove(obj) | 从列表中删除对象obj |
| list.reverse() | 反转列表中的对象 |
| list.sort([func]) | 排序列表的对象,如果给出,则使用比较函数func来排序 |
『Python基础-8』列表的更多相关文章
- 『Python基础-12』各种推导式(列表推导式、字典推导式、集合推导式)
# 『Python基础-12』各种推导式(列表推导式.字典推导式.集合推导式) 推导式comprehensions(又称解析式),是Python的一种独有特性.推导式是可以从一个数据序列构建另一个新的 ...
- 『Python基础-11』集合 (set)
# 『Python基础-11』集合 (set) 目录: 集合的基本知识 集合的创建 访问集合里的值 向集合set增加元素 移除集合中的元素 集合set的运算 1. 集合的基本知识 集合(set)是一个 ...
- 『Python基础-10』字典
# 『Python基础-10』字典 目录: 1.字典基本概念 2.字典键(key)的特性 3.字典的创建 4-7.字典的增删改查 8.遍历字典 1. 字典的基本概念 字典一种key - value 的 ...
- 『Python基础-9』元祖 (tuple)
『Python基础-9』元祖 (tuple) 目录: 元祖的基本概念 创建元祖 将列表转化为元组 查询元组 更新元组 删除元组 1. 元祖的基本概念 元祖可以理解为,不可变的列表 元祖使用小括号括起所 ...
- 『Python基础-7』for循环 & while循环
『Python基础-7』for循环 & while循环 目录: 循环语句 for循环 while循环 循环的控制语句: break,continue,pass for...else 和 whi ...
- 『Python基础-6』if语句, if-else语句
# 『Python基础-6』if语句, if-else语句 目录: 条件测试 if语句 if-else语句 1. 条件测试 每条if语句的核心都是一个值为True或False的表达式,这种表达式被称为 ...
- 『Python基础-5』数字,运算,转换
『Python基础-5』数字,运算,转换 目录 基本的数字类型 二进制,八进制,十六进制 数字类型间的转换 数字运算 1. 数字类型 Python 数字数据类型用于存储数学上的值,比如整数.浮点数.复 ...
- 『Python基础-4』字符串
# 『Python基础-4』字符串 目录 1.什么是字符串 2.修改字符串 2.1 修改字符串大小 2.2 合并(拼接)字符串 2.3 使用乘号'*'来实现字符串的叠加效果. 2.4 在字符串中添加空 ...
- 『Python基础-3』变量、定义变量、变量类型、关键字Python基础-3』变量、定义变量、变量类型、关键字
『Python基础-3』变量.定义变量.变量类型.关键字 目录: 1.Python变量.变量的命名 2.变量的类型(Python数据类型) 3.Python关键字 1. Python 变量.变量的命名 ...
随机推荐
- centOS 7 简单设置(虚拟机)
1.修改主机名 hostnamectl set-hostname 2.ssh连接慢的问题解决 vim /etc/ssh/sshd_config UseDNS=no GSSAPIAuthenticati ...
- ZT 苍天助曹不助汉哪
诸葛亮能夜观星象,但为什么在上方谷一役中,孔明没有测出突如其来的大雨,却高呼“苍天助曹不助汉哪”断送了自己的性命,这是为什么 谋事在人,成事在天. 雁过留影 3级 2011-04-18 天命不可违 ...
- Android Studio使用GIt提交代码到本地仓库后没有Push,如何回退保存
当在AS中使用Git来提交代码时,有时候我们不注意的情况下会把不想提交的文件或文件夹(比如\build下的)提交到本地仓库,如果此时并没有Push到远程仓库的话.如果让本地仓库的提交回退并且保存之前的 ...
- hdu 5971 Wrestling Match
题目链接: hdu 5971 Wrestling Match 题意:N个选手,M场比赛,已知x个好人,y个坏人,问能否将选手划分成好人和坏人两个阵营,保证每场比赛必有一个好人和一个坏人参加. 题解:d ...
- JPA注解实现联合主键
当表中一个主键不能唯一标识一条记录的时候,就需要使用联合主键了,下面是使用JPA注解实现联合主键的代码 1 首先需要建立一个复合主键类,用来存放需要生产联合主键的属性,该类需要实现序列化. packa ...
- Centos 7 安装Anaconda3
1.首先下载地址: https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/ 使用清华镜像下载速度快 2.安装 bash Anaconda3-5.1 ...
- PHP------文件------文件整体操作
文件整体操作 [1]创建文件 touch("路径"); touch("./test.docx");//当前路径创建文件,创建的文档 显示的结果: touch ...
- SpringMVC(1)
1.简要说明: Spring为展现层提供的基于MVC设计理念的优秀web框架,目前主流的框架 Spring3.0以后全面超越Struts2,成为最优秀的MVC框架 Spring MVC通过一套MVC注 ...
- ASP.NET Web API编程——使用Odata
路由配置 routePrefix路由前缀,必须含有Odata字符串,否则路由不到Odata控制器. V1表示版本,可以使用这种方式进行版本控制,也可以使用其他方式. config.Count().Fi ...
- 常用的css选择器
1.最基本的 * * 选择所有元素. #id #firstname 选择 id="firstname" 的元素. .class .intro 选择 class="intr ...