第4章 序列的应用

python的数据类型分为:空类型、布尔类型、数字类型、字节类型、字符串类型、元组类型、列表类型、字典类型、集合类型

在python中序列是一块用于存放多个值的连续内存空间。

python内置了5种序列分别是元组、列表、字典、集合、字符串

本章将介绍元组、列表、字典、集合四种序列类型,字符串将在第5章介绍

4.2 列表

列表的所有元素都放在一对中括号"[]"中,两个相邻元素间使用逗号","分隔,在内容上,可以将整数、实数、字符串、列表、元组等任何类型的内容放入到列表中,并且元素的类型可以不同,因为它们之间没有任何关系。

列表是可变序列

4.2.1 列表的创建和删除

1、直接使用[]创建列表

listname = [element1, element2, ...elementn]
参数说明
listname表示列表名称
element表示列表元素,个数没限制
list1 = ["Monday","Tuesday","wednesday","Thursday","Friday","Saturday","Sunday"]
print(list1)
output:['Monday', 'Tuesday', 'wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']

2、创建空列表

emptylist = []

3、通过list()创建数值列表

list(data)
参数说明
list是一个函数
data表示可以转换为列表的数据
list(range(10,20,2)) # 创建一个10~20之间(不包括20)所有偶数的列表
# 拓展:生成逆序序列
list(range(10,-1,-1)) # [10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]

4、删除列表

对于已经创建的列表,不再使用时,可以用del语句将其删除。前提是列表已存在。在python中,del并不常用,因为python自带垃圾回收机制,会自动销毁不用的列表。

del listname
list1 = ["Monday","Tuesday","wednesday","Thursday","Friday","Saturday","Sunday"]
print(list1)
del list1
print(list1)
output:
['Monday', 'Tuesday', 'wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']
NameError: name 'list1' is not defined

4.2.2 访问列表元素

1、通过索引访问

list1 = ["Monday","Tuesday","wednesday","Thursday","Friday","Saturday","Sunday"]
print(list1[0])
print(list1[1])
output:
Monday
Tuesday

4.2.3 遍历列表

1、使用for循环实现

for item in listname:
# 输出item
list1 = ["Monday","Tuesday","wednesday","Thursday","Friday","Saturday","Sunday"]
for i in list1:
print(i)
output:
Monday
Tuesday
wednesday
Thursday
Friday
Saturday
Sunday

2、使用for循环和enumerate()函数实现

for index, item in enumerate(listname):
# 输出index和item
list1 = ["Monday","Tuesday","wednesday","Thursday","Friday","Saturday","Sunday"]
for index, item in enumerate(listname):
print(index,item)
output:
0 Monday
1 Tuesday
2 wednesday
3 Thursday
4 Friday
5 Saturday
6 Sunday

4.2.4 添加、修改、删除列表元素

1、添加元素

listname.append(obj)
list1 = ["Monday","Tuesday","wednesday","Thursday","Friday","Saturday","Sunday"]
list1.append("Sunday")
print(list1)
output:
['Monday', 'Tuesday', 'wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday', 'Sunday']

2、修改元素

list1 = ["Monday","Tuesday","wednesday","Thursday","Friday","Saturday","Sundayy"]
list1[-1] = "Sunday"
print(list1)
output:
['Monday', 'Tuesday', 'wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']

3、删除元素

# 根据值来删除元素
list1 = ["Monday","Tuesday","wednesday","Thursday","Friday","Saturday","Sunday"]
list1.remove("Sunday")
print(list1)
output:
['Monday', 'Tuesday', 'wednesday', 'Thursday', 'Friday', 'Saturday']
# 根据索引来删除元素
list1 = ["Monday","Tuesday","wednesday","Thursday","Friday","Saturday","Sunday"]
del list1[-1]
print(list1)
output:
['Monday', 'Tuesday', 'wednesday', 'Thursday', 'Friday', 'Saturday']

4.2.5 对列表进行统计和计算

1、获取指定元素出现的次数

listname.count(obj)
list1 = ["Monday","Monday","Monday","Thursday","Friday","Saturday","Sunday"]
print(list1.count("Monday"))
output:
3

2、获取指定元素首次出现的下标

listname.index(obj)
list1 = ["Monday","Tuesday","wednesday","Thursday","Friday","Saturday","Sunday"]
print(list1.index("Monday"))
print(list1.index("Sunday"))
output:
0
6

3、统计数值列表的元素和

sum(iterable[,start])
list1 = list(range(1,10,1))
print(sum(list1))
output:
45

4.2.6 对列表进行排序

1、使用列表对象的sort()方法

改变原序列的顺序

listname.sort(key=None, reverse=False)
list1 = [4, 6, 2, 9]
list1.sort()
print(list1)
output:
[2, 4, 6, 9]

2、使用内置的sorted()函数实现

不会改变原序列的顺序

sorted(iterable,key=None,reverse=False)
list1 = [4, 6, 2, 9]
print(sorted(list1))
output:
[2, 4, 6, 9]
a = [1, 4, 2, 3, 1]
print(sorted(a, reverse=True))
a = [{'name': 'xiaoming', 'age': 18, 'gender': 'male'}, {'name': 'xiaohong', 'age': 20, 'gender': 'female'}]
print(sorted(a, key=lambda x: x['age'], reverse=False))
output:
[4, 3, 2, 1, 1]
[{'name': 'xiaoming', 'age': 18, 'gender': 'male'}, {'name': 'xiaohong', 'age': 20, 'gender': 'female'}]

3、列表反转

def reverse(lst):
return lst[::-1] r = reverse([1, -2, 3, 4, 1, 2])
print(r) # [2, 1, 4, 3, -2, 1]

4.2.7 列表推导式

list = [Expression for var in range]
参数说明
list表示生成的列表名称
Expression表达式,用于计算新列表的元素
var循环变量
range采用这个函数生成的range对象

敬请关注个人微信公众号:测试工匠麻辣烫

Python3笔记017 - 4.2 列表的更多相关文章

  1. python3笔记目录大纲汇总

    篇一.python3基础知识和语句 python3笔记一:python基础知识 python3笔记二:进制转换与原码反码补码 python3笔记三:运算符与表达式 python3笔记四:if语句 py ...

  2. wxPython制作跑monkey工具(python3)-带显示设备列表界面

    一. wxPython制作跑monkey工具(python3)-带显示设备列表界面  源代码 Run Monkey.py #!/usr/bin/env python import wx import ...

  3. python 基础学习笔记(3)--列表与元组

    **本次笔记主要内容为 列表,元组主要的功能和特性** **1.列表**: 学习过c语言的同学应该知道,c语言有数组这一功能,就是将数据类型相同的元素放在一起.由于python的变量没有数据类型,也就 ...

  4. Flutter学习笔记(12)--列表组件

    如需转载,请注明出处:Flutter学习笔记(12)--列表组件 在日常的产品项目需求中,经常会有列表展示类的需求,在Android中常用的做法是收集数据源,然后创建列表适配器Adapter,将数据源 ...

  5. Python学习笔记(二)——列表

    Python学习笔记(二)--列表 Python中的列表可以存放任何数据类型 >>> list1 = ['Hello','this','is','GUN',123,['I','Lov ...

  6. Python3学习笔记14-迭代与列表生成式

    迭代 如果给定一个list或tuple,我们可以通过for循环来遍历这个list或tuple,这种遍历我们称为迭代(Iteration) 在Python中,迭代是通过for...in来完成的. d = ...

  7. python3笔记十一:python数据类型-List列表

    一:学习内容 列表概念 列表创建:创建空列表.创建带有元素的列表 列表访问:取值 列表修改:替换元素.追加元素.追加列表.插入元素 列表删除:移除列表中指定下标处的元素.移除匹配条件的第一个元素.移除 ...

  8. python3笔记十八:python列表元组字典集合文件操作

    一:学习内容 列表元组字典集合文件操作 二:列表元组字典集合文件操作 代码: import pickle  #数据持久性模块 #封装的方法def OptionData(data,path):    # ...

  9. python3笔记-列表

    列表去重的两种方式: # 创建列表放数据 a =[1,2,1,4,2] b=[1,3,4,3,1,3] d=[] for i in a: if i not in d: d.append(i) prin ...

随机推荐

  1. Java实现 LeetCode 216. 组合总和 III(三)

    216. 组合总和 III 找出所有相加之和为 n 的 k 个数的组合.组合中只允许含有 1 - 9 的正整数,并且每种组合中不存在重复的数字. 说明: 所有数字都是正整数. 解集不能包含重复的组合. ...

  2. Java实现LeetCode_0009_PalindromeNumber

    package javaLeetCode_primary; import java.util.Scanner; import java.util.Stack; public class Palindr ...

  3. Base-64字符串无效,The input is not a valid Base-64 string as it contains a non-base 64 character

    base64规则: * 字符串只可能包含A-Z,a-z,0-9,+,/,=字符* 字符串长度是4的倍数* =只会出现在字符串最后,可能没有或者一个等号或者两个等号 首先,C# 做上传文件的时候,需要替 ...

  4. v-model 指令来实现双向数据绑定

    <div id="app"> <p>{{ message }}</p> <input v-model="message" ...

  5. Selenium和ChromeDriver的安装与配置

    安装安装selenium: win: pip install seleniumliunx: pip3 install selenium12安装ChromeDriver, 该工具供selenium使用C ...

  6. 在Linux下制作Linux&windows启动盘

    在Linux下制作Linux&windows启动盘 如何在Linux-mint环境下,制作其他Linux发行版的UEFI启动盘,以及Windows10的UEFI模式启动盘. 对于U盘的操作,可 ...

  7. Lombok介绍和使用

    1 Lombok背景介绍 官方介绍如下: Project Lombok makes java a spicier language by adding 'handlers' that know how ...

  8. 2、Redis如何配置成一个windows服务并且设置一键安装卸载与启停

    每天启动redis虽然只是一个命令行的事情,但是还是比较烦,所以…… 参考文档:Windows Service Documentation.docx 默认前提:Redis已安装并配置完成(不知道如何配 ...

  9. 网站用https访问的问题

    网站挂到阿里云上, 可以http访问, 也可以https访问. 但是如果用https方式访问网站.发现接口报错. 因为接口只提供http方式. 在谷歌浏览器出现: Mixed Content: The ...

  10. cb35a_c++_STL_算法_for_each

    cb35a_c++_STL_算法_for_each for_each(b,e,p)使用for_each()算法遍历数据使用for_each()和函数对象修改数据使用for_each()的返回值 //转 ...