本文共 6403 字,大约阅读时间需要 21 分钟。
元组是序列类型的一种扩展
用来存放一组相关的数据
元组使用(),一旦创建就不能修改
语法:
tuple = (字符串,元组,集合,字典, 列表,数字,布尔类型)
将多个元素使用 ,隔开放在一对()中
声明一个空元组tp = ()
tup = ("张三", '李四', 88, (66, 90, "pudding"))
注:当定义的元组只有1个元素时,一定要在该元素的后面写一个,
否则系统会将其视为单个数据tup = ("张三",)
不带()的多个数据用,隔开也可以定义元组
tup = 66,77,88,"张三"
使用tuple()函数创建
声明一个空元组tp = tuple()
元组继承序列类型的全部通用操作
元组因为创建后不能修改,因此没有特殊操作
与列表一样,元组可以使用索引位置来访问元组中的值
tup1 = ('physics', 'chemistry', 1997, 2000)tup2 = (1, 2, 3, 4, 5, 6, 7 )print("tup1[0]: ", tup1[0])print("tup2[-1]: ",tup2[-1])结果:tup1[0]: physicstup2[-1]: 7
嵌套的元组,访问元素与列表一样,通过在后面添加中括号的形式实现。
tup = (1,2,3,"abc",(10,20,30))print("tup[3][1]: ",tup[3][1])print("tup[4][0]: ",tup[4][0])输出结果:tup[3][1]: btup[4][0]: 10
元组中的元素值是不允许修改的,但我们可以对元组进行连接组合
tup1 = (12, 34.56)tup2 = ('abc', 'xyz')tup3 = tup1 + tup2print(tup3)输出结果:(12, 34.56, 'abc', 'xyz')
Python提供了两个转换函数
tuple()函数用来将列表转换为元组 list()函数用来将元组转换为列表
tupPlay = ("张三", "男", 98)listPlay = list(tupPlay)>>>listPlay["张三", "男", 98]listScore = [66, 77, 88, 99]tupScore = tuple(listScore)>>>tupScore(66, 77, 88, 99)
由0个或多个数据组成的有序序列
列表是序列类型的一种扩展,十分常用
用来有序存放一组相关数据,以便进行统一的处理
Python语言中,列表(list)使用[ ]表示,采用逗号,分隔各元素
['F', 'f']表示两个元素'F'和'f'
元素的个数表示列表的长度
使用方括号[ ] 或list()函数创建列表,元素之间使用逗号分隔
列表是一种序列类型,创建后可以随意被修改
列表中个元素类型可以不同,无长度限制
语法:
list = [字符串,元组, 集合,字典,列表,数字,布尔类型]
声明一个空列表ls = []
举例play = ["阿布", 98, ["阿伟", 60], ("张三", 88)]
注:元组可以充当列表的元素,但是不能修改元组中的元素,可以通过一个新的元组来替换列表中的元组
声明一个空列表ls = list()
>>> lst = list("hello")>>> lst['h', 'e', 'l', 'l', 'o']
列表中每一个元素都对应一个位置编号,这个位置编号称为元素的索引,列表通过索引来访问元素的
语法格式:
列表名[索引值]
注:列表和字符串一样也有正向和反向索引方式
列表的反向索引方式可以方便程序更加快捷访问列表尾元素
举例:
间接访问>>> list = ['physics', 'chemistry', 1997, 2000]>>> print(list[0])physics直接访问>>> print(['physics', 'chemistry', 1997, 2000][0])physics
>>> a = ['physics', 'chemistry'] #此时变为列表 >>> print(a[0]) #打印第一个元素(这里为字符串)physics>>> print(a[0][1]) #打印第一个元素的第二个位置上的字符h
列表的特性:
列表的元素是有序存放的,可以通过索引直接来访问列表元素列表的元素值可以修改,元素个数可以改变
定义:直接将列表中要修改的元素索引指出,然后为其指定新值
语法格式:
列表名[索引] = 值
>>> list = ['Google', 'Runoob']>>> list[0] = "Baidu">>> print(list)['Baidu', 'Runoob']
方法一:append()方法
用来指定在列表尾部添加元素
语法:
列表名.append(新元素)
方法二:insert()方法
允许为新增的元素指定插入的位置,位置使用索引表示
语法:
列表名.insert(索引,新元素)
方法一:使用del命令
定义:删除指定索引位置的元素
语法:
del 列表名[索引]
方法二:使用pop()方法
定义:指定索引从列表中删除对应的元素,并返回该元素
语法格式:
列表名.pop(索引)
注:
当没有指定索引来删除元素时,默认删除列表的最后一个元素
方法三:使用remove()方法
定义:可以直接指定待删除元素的值
语法格式:
列表.remove(元素值)
注:当列表元素有多个相同的取值时,需要删除时怎么办?
remove()方法删除的是列表中排在最前面的待删除的元素
语法格式:
len(列表)
返回列表的长度
使用in和not in成员运算符
使用保留字in判断一个元素是否在列表中,如果元素在列表中则返回True,否则返回False
语法:
元素 in 列表元素 not in 列表
举例:
TemStr[-1] in ['C', 'c']判断前者是否与列表中某个元素相同
定义:index()方法在列表中查找指定的元素,如果存在则返回指定元素在列表中的索引
如果存在多个指定元素,则返回最小的索引值。如果不存在,会直接报错语法:
列表.index(元素)
定义:count()方法统计并返回列表中指定元素的个数
语法:
列表.count(元素)
注:当统计列表中没有的元素,返回值是0
方式一:通过索引号进行遍历
方式二:使用range()函数
语法:
for i in range(n): print(列表[i])
索引从0到n-1的变化来实现元素的遍历
方式三:直接的元素遍历
定义:直接依次访问列表中的每一个元素
语法:
for 元素 in 列表: print(元素)
举例:
谁是小偷suspects=['A', 'B', 'C', 'D']for x in suspects: if (x!='A') + (x=='C') + (x=='D') + (x!='D')==3 print("小偷是:",x) break
方式一:sort()方法
语法格式:
列表.sort() <==> 列表.sort(reverse=False) 表示:列表元素从小到大排列 列表.sort(reverse=True) 表示:列表元素从大到小排序
注:
Python中排序是基于ord()函数得到的编码值来进行的, 对于数字和英文字符排序,结果是确定的, 但是对于中文,中文通常拼音和笔画两种排序, 不同字符集可能采用不同的方式,所以sort()方法排序可能结果不同
方式二:sorted()方法
语法格式:
sorted(列表,reverse = True/False) False:表示升序排列(默认) True:表示降序排列
sort()方法和sorted()方法区别
sort()方法直接改变原来的列表顺序, 而sorted()函数只生成排序后的列表副本,不改变原来的列表顺序
方式三:reverse()方法
定义:将列表中的元素反向排列
注:首先需要对列表中的元素进行排列
语法:
list1 = [1,2,3,4,5]list1.reverse()print(list1)结果:[5, 4, 3, 2, 1]
定义:直接指定切片的起始索引和终止索引可以从列表中提取切片,和字符串切片操作类似
语法:
列表[起始索引:终止索引] 表示:从起始索引对应元素到终止索引前的那个元素作为切片列表[起始索引:终止索引:n] 表示:从起始索引到终止索引前的元素每隔n个元素提取一个元素的方式进行切片
方式一:+ 元素
定义:和字符串类似,将两个列表连接起来
语法:
新列表 = 列表一 + 列表二
注:
连接之后的新列表,但是原来的列表一和列表二都没有变化
fruit = ["苹果","梨子","菠萝","香蕉"]vegetable = ["土豆","萝卜","茄子","白菜","黄瓜"]food = []food = fruit + vegetableprint(food)结果:['苹果', '梨子', '菠萝', '香蕉', '土豆', '萝卜', '茄子', '白菜', '黄瓜']
方式二:extend()方法
定义:列表调用extend()方法直接将新列表添加到列表的后面
语法:
列表.extend(新列表)
方式三:* 运算
定义:和字符串一样,将列表中的元素重复多遍
语法格式:
列表 * n
注:如果不用赋值语句将结果保存下来,*运算结果仅回显一次
方式一:利用切片实现
语法:
新列表 = 列表[:]
copy()方法
语法:
新列表 = 列表.copy()
注:列表的copy()方法会生成原列表的备份,并将该备份赋值给新列表,这被称为深拷贝
列表之间的赋值
语法:
新列表 = 列表
注:直接列表赋值,仅仅是让原列表多了一个新名字,但是和原列表内容相同,被称为浅拷贝
方式一:列表整体删除
语法:
del 列表名 再次输出列表会报错
方式二:列表的清空
语法:
通过del 列表[:] 是表示清空列表,此时列表还在,是一个没有元素的空列表
方式一:通过input()函数输入
定义:输入列表的时候要带有[ ]一起输入
语法:
lst = eval(input("请输入一个数值列表:\n"))输入:[1, 2, 3, 4]
注:输入的时候一定要带有[ ],这样才被看做是列表
方式二:通过list()函数转换
语法:
lst = list(range(1, 11))
注:list函数可将range对象转换为列表
方式三:基于range()函数创建数字列表
定义:通过range()函数,利用 Python 列表提供的append()插入功能创建一个列表
语法:
# 声明一个列表变量numbers = []# 利用append()函数和range()函数向列表插入目标元素for i in range(10): number = i**2 numbers.append(number)print(numbers)输出结果:[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
方式四:使用list()函数和range()函数创建数字列表
语法:
data_list = list(range(lower_limit,upper_limit,step))
举例:
data_list = list(range(1,6))print(data_list)输出结果:[1,2,3,4,5]
定义:
列表生成式将range()函数生成的若干数按照指定的表达式运算符后的结果作为元素创建了数值列表
语法:
列表 = [循环变量相关表达式 for 循环变量 in range()]
举例:
>>> lnum = []>>> for i in range(1, 11): lnum.append(i**2) >>> lnum[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]等价于>>> lnum = [i**2 for i in range(1, 11)]>>> lnum[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
Python语言针对数值列表提供了几个内置函数
求最小值min()函数
求最大值的max()函数
求和的sum()函数
举例:
numbers = [2,4,11,1,21,32,5,8]print('The min number is',min(numbers))print('The max number is',max(numbers))print('The sum is',sum(numbers))输出结果:The min number is 1The max number is 32The sum is 84
转换后的字符串中单个字符依次成为列表元素
name = "张三, 李四"guests = list(name)>>> guests['张', '三', ',', '李', '四']
split()是处理字符串的方法,根据指定的分隔符拆分字符串,并生成列表
列表 = 字符串.split(分隔符)
当分隔符缺省,默认按照空格拆分字符串
sentence = "I am pudding"sentenceList = sentence.split()>>>sentenceList['I', 'am', 'pudding']
转载地址:http://lmxzi.baihongyu.com/