目录
一、列表、字典、元组对比
列表 | 元组 | 字典 | |
括号形式 | [] | () | {} |
存储多种数据类型 | 可以 | 可以 | 基本可以 注意键名必须不可变,所以不能为列表 |
存储多个数据 | 可以 | 可以 | 可以 |
创建完成后增删改数据 | 可以 | 不可以 | 可以 |
数据的排列顺序 | 有 | 有 | 没有 |
数据唯一性 | 否 | 否 | 键唯一 键值可以不唯一 |
二、列表的形式及用法
2.1 列表的形式及创建
一个列表需要用中括号[ ]把里面的各种数据框起来,里面的每一个数据叫作“元素”。每个元素之间都要用英文逗号隔开,创建列表的语法如下所示,列表名 = [元素1,元素2,......]
偏移量:元素在列表中是有序排列的,偏移量代表元素在列表中的位置,从0开始依次排列:0,1,2,…….
list1 = ['小明',18,1.70]
生成一系列数A—B-1:range(A, B)
生成A—B-1数字列表:
list(range(A, B,步长))
2.2 列表中元素的提取/查找
1)通过索引(即偏移量)提取元素
单个元素:
a = lists1[1] #结合上文,这里把18赋给了a
多个元素:
Lists1[:] #提取所有元素
Lists1[:9] #提取偏移量为0~8的所有元素,取左不取右
Lists1[1:] #提取偏移量为1及1之后的的所有元素
2)从列表中找出某个值第一个匹配项的索引位置(想想与“返回某个值在列表中的位置”有什么区别?)
Index()函数,用法:
List1.index(x,start,end)
参数x:查找的对象,start:查找的起始位置,end:查找的结束位置。其中由start和end会形成一个左闭右开的索引区间,若索引区间包含查找对象,该函数会返回查找对象x的索引位置;若索引区间不包含查找对象,则抛出异常。
2.3 向列表中增加元素
1)append()函数,用法如下,A可以是单个字符串、数字或者单个列表、字典等,A代表的内容会自动加在列表的末尾:
list1.append(A)
2)insert()函数,用法:
List1.insert(1,'小李') #在列表中插入'小李'到偏移量为1的位置
3)extend()函数,用法如下,在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表):
list1.extend(seq) #在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
2.4 从列表中删除元素
1)del()函数,通过索引,指定删除某个位置/某个区间内的元素
del list1[1:4]
2)remove()函数,移除列表中某个值的第一个匹配项(想想与“指定删除列表中的某个元素”有什么区别?)
List1.remove('小明')
3)pop()函数,移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
list.pop([index=-1])
2.5 更改列表中的元素
List1[索引] = xxxx
2.6 列表相关的其他函数
函数 | 作用 |
cmp(list1, list2) | 比较两个列表的元素 |
len(list) | 列表元素个数/列表长度 |
max(list) | 返回列表元素最大值 |
min(list) | 返回列表元素最小值 |
list(seq) | 将元组转换为列表 |
list.reverse() | 反向列表中元素 |
list.sort(cmp=None, key=None, reverse=False) | 对原列表进行排序,真实排序,(升序)A.sort() (降序)A.sort(reverse=True) |
list.sorted(cmp=None, key=None, reverse=False) | 对原列表进行排序,临时排序,(升序)A.sorted() (降序)A.sorted(reverse=True) |
三、元组的形式及用法
3.1 元组的形式及创建
元组是无序排列的,元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可
tup1 = ('physics', 'chemistry', 1997, 2000)
tup2 = (1, 2, 3, 4, 5 )
tup3 = "a", "b", "c", "d"
创建空元组
tup1 = ()
元组中只包含一个元素时,需要在元素后面添加逗号
tup1 = (20,)
注意,任意无符号的对象,以逗号隔开,默认为元组,如下实例中tup4被创建为一个元组:
tup4 = 'abc', -4.24e93, 18+6.6j, 'xyz'
3.2 元组中元素的提取/查找
通过索引(即偏移量)提取元素
单个元素:
a = tup1[1] #结合上文,这里把'physics'赋给了a
多个元素:
tup1[:] #提取所有元素
tup1[:4] #提取偏移量为0~3的所有元素,取左不取右
tup1[1:] #提取偏移量为1及1之后的的所有元素
2)从列表中找出某个值第一个匹配项的索引位置(想想与“返回某个值在列表中的位置”有什么区别?)
Index()函数,用法:
List1.index(x,start,end)
参数x:查找的对象,start:查找的起始位置,end:查找的结束位置。其中由start和end会形成一个左闭右开的索引区间,若索引区间包含查找对象,该函数会返回查找对象x的索引位置;若索引区间不包含查找对象,则抛出异常。
3.3 元组不能增删改
元组中的数据是不可以增加、删除、更改的
但是我们可以将元组组合或者删除整个元组
tup3 = tup1 + tup2 #两个元组组合
del tup3 #删除整个元组
3.4 元组相关的其他函数
函数 | 作用 |
cmp(tuple1, tuple2) | 比较两个元组的元素 |
len(tuple) | 元组元素个数/列表长度 |
max(tuple) | 返回元组元素最大值 |
min(tuple) | 返回元组元素最小值 |
tuple(seq) | 将列表转换为元组 |
四、字典的形式及用法
4.1 字典的形式及创建
1)一般字典创建方法
字典的每个键值 key=>value 对用冒号分割,每个对之间用逗号分割,整个字典包括在花括号 {} 中
键必须是唯一的,但值则不必。
值可以取任何数据类型,但键必须是不可变的,如字符串,数字。
2)空字典创建方法
emptyDict = {} #直接使用大括号进行空字典创建
emptyDict = dict() #使用内建函数 dict() 创建空字典
4.2 字典中元素的提取/查找
1) 通过键找到键值
#!/usr/bin/python3
tinydict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
print ("tinydict['Name']: ", tinydict['Name'])
print ("tinydict['Age']: ", tinydict['Age'])
输出结果
tinydict['Name']: Runoob
tinydict['Age']: 7
2) 利用get()函数
返回指定键的值,如果键不在字典中返回 default 设置的默认值
tinydict.get(key, default=None)
4.3 向字典中增加/修改元素
1)与创建字典类似,直接声明键名并赋予新的键值
tinydict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
tinydict['Age'] = 8 # 更新 Age
tinydict['School'] = "菜鸟教程" # 添加信息
print ("tinydict['Age']: ", tinydict['Age'])
print ("tinydict['School']: ", tinydict['School'])
2)default()函数
和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default
tinydict.setdefault(key,default=None)
3)update()函数
把字典dict2的键/值对更新到dict里
tinydict.update(dict2)
4.4 从字典中删除元素
del()函数,能够删除单一元素也能用于删除整个字典
clear()函数,清空字典
tinydict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
del tinydict['Name'] # 删除键 'Name'
tinydict.clear() # 清空字典
del tinydict # 删除字典
pop()函数 ,删除字典 key(键)所对应的值,并返回被删除的值
tinydict.pop(key[,default])
site= {'name': '123', 'alexa': 10000, 'url': 'www.runoob.com'}
element = site. Pop('name')
popitem()函数,返回并删除字典中的最后一对键和值。
site= {'name': '菜鸟教程', 'alexa': 10000, 'url': 'www.runoob.com'}
result = site.popitem()
# ('url': 'www.runoob.com') 最后插入会被删除
print(result)
输出结果(键与键值之间用逗号隔开)
'url', 'www.runoob.com'
4.5 字典相关的其他函数
函数 | 作用 |
len(dict) | 计算字典元素个数,即键的总数。 |
str(dict) | 把字典转化为字符串并输出 |
type(variable) | 返回输入的变量类型,如果变量是字典就返回字典类型。 |
dict.copy() | 返回一个字典的浅复制 |
dict.fromkeys() | 创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值 |
dict.get(key, default=None) | 返回指定键的值,如果键不在字典中返回 default 设置的默认值 |
key in dict | 如果键在字典dict里返回true,否则返回false |
dict.items() | 以列表返回一个视图对象 |
dict.keys() | 返回一个视图对象 |
dict.values() | 返回一个视图对象 |
注:以上大部分信息来自菜鸟教程网站Python3 教程 | 菜鸟教程 (runoob.com),个人学习记录