列表
- 变量可以存储一个元素,而列表是一个’大容器’可以存储N多个元素,程序可以方便地对这些数据进行整体操作
- 列表相当于其他语言中的数组
列表的创建与删除
列表需要使用中括号[],元素之间使用英文的逗号进行分隔
lst = [‘大圣’,‘八戒’]
列表 的创建方式:使用中括号 、调用内置函数list()
列表的特点:
列表元素按顺序有序排序
索引映射唯一个数据
列表可以存储重复数据
任意类型数据混存
根据需要动态分配和回收内存
lst=['hello','world',98]
print(id(lst))
print(type(lst))
print(lst)
lst=['hello','world',98]
'''创建列表的第二种方式,使用内置函数list()'''
lst2=list(['hello','world',98])
print(lst2)
print(lst[0]) #列表索引是从0开始
print(lst[0],lst[-3]) #正数是从0开始的,负向是从-1开始的
列表的查询操作
-
获取列表中指定元素的指引
index() :如查列表中存在N个相同元素,只返回相同元素中的第一个元素的索引
如果查询的元素不在列表中,则会抛出ValueError
还可以在指定的start和stop之间进行查找
-
获取列表中的单个元素
- 正向索引从0到N-1 举例:lst[0]
- 逆向索引从-N到-1 举例:lst[-N]
- 指定索引不存在,抛出indexError
lst=['hello','world',98,'hello']
print(lst.index('hello'))
#print(lst.index('python'))
#在指定范围内查找,(左闭右开)
#print(lst.index('hello',1,3)) #查不到
print(lst.index('hello',1,4)) #3
-
判断指定元素在列表中是否存在
元素 in 列表名
元素 not in 列表名
-
列表元素的遍历
for 迭代变量 in 列表名
列表的增加操作
lst=[10,20,30]
print('添加元素之前',lst,id(lst))
#append() 在列表的末尾添加一个元素
lst.append(100)
print('添加元素之后',lst,id(lst))
#extend() 在列表的末尾至少添加一个元素
lst2=[40,45,50]
#lst.append(lst2) 将lst2作为一个元素添加到列表的末尾
lst.extend(lst2)
print(lst)
#insert() 在列表的任意位置上添加一个元素
lst.insert(1,90)
print(lst)
lst3=[True,False,'hello']
#切片,在任意的位置上添加N多个元素
lst[1:]=lst3 #把切掉的部分用一段新的列表去替换
print(lst) #[10, True, False, 'hello']
列表的删除操作
remove() :一次删除一个元素、重复元素只删除一个、元素不存在抛出valueError
pop():删除一个指定索引位置上的元素、指定索引不存在的抛出valueError、不指定索引,删除列表中最后一个元素
切片:一次至少删除一个元素
clear():清空列表
del:删除列表
lst=[10,20,30,40,50,60,30]
lst.remove(30)
print(lst)
#lst.remove(90)
lst.pop(2) #索引移除元素
print(lst)
lst.pop()
print(lst) #不指定索引,将移除最后一个元素
#切片操作
new_list=lst[1:3]
print('原列表',lst)
print('切片后的列表',new_list) #[20, 50]
lst[1:3]=[]
print(lst) #[10,60]
#清除列表所有元素
lst.clear()
print(lst)
#del可将列表对象删除
del lst
#print(lst) #NameError: name 'lst' is not defined
列表元素的修改操作
为指定索引的元素赋予一个新值
为指定的切片赋予一个新值
lst=[10,20,30,40]
#一次修改一个值
lst[2]=100
print(lst)
#利用切片,修改多个值
lst[1:3]=[300,400,500,600]
print(lst) #[10, 300, 400, 500, 600, 40]
列表元素的排序操作
常见的两种方式:
- 调用sort()方法,列表中的所有元素默认按照从小到大的顺序进行排序,可以指定reverse=True,进行降序排序
- 调用内置函数sorted(),可以指定reverse=True,进行降序排序,原列表不发生改变。
区别:sort()方法是对原列表进行排序。而sorted()是产生一个新的列表对象
lst=[10,90,30,60,40,80]
print('排序前的列表',lst)
lst.sort()
print('排序后的列表',lst)
#通过指定关键数参数,将列表中的元素进行降序排序
lst.sort(reverse=True)
print(lst) #[90, 80, 60, 40, 30, 10]
#使用内置函数sorted()对列表进行排序,将产生一个新的列表对象
lst=[20,40,10,98,54]
print('原列表',lst)
new_list=sorted(lst)
print(lst)
print(new_list)
#指定关键数参数,将列表中的元素进行降序排序
desc_list=sorted(lst,reverse=True)
print(desc_list) #[98, 54, 40, 20, 10]
列表生成式
简称为’生成列表的公式’
语法格式:[i*i for i in range(1,10) ]
i*i代表列表元素的表达式
lst=[i for i in range(1,10)]
print(lst)
lst=[i*i for i in range(1,10)]
print(lst) #[1, 4, 9, 16, 25, 36, 49, 64, 81]
lst=[i*2 for i in range(1,6)]
print(lst) #[2, 4, 6, 8, 10]
字典
什么是字典
Python内置的数据结构之一,与列表一样是一个可变序列
以键值对的方式存储数据,字典是一个无序的序列
scores={'张三':100,'李四':98,'王五':45}
#字典名 花括号 逗号 键 冒号 值
字典的实现原理
字典的实现原理与查字典类似,查字典是先根据部首或拼音查找对应的页码,Python中的字典是根据key查找value所在的位置。
字典的创建
- 最常用的方式:使用花括号{}
- 使用内置函数dict()
'''字典的创建方式'''
#使用{}创建字典
score={'张三':100,'李四':98,'王五':54}
print(score,type(score))
#使用内置函数dict()
student=dict(name='jake',age=20)
print(student)
#空字典
d={}
print(d)
字典的常用操作
获取字典中的元素: []、get()方法
[]取值和get()方法取值的区别:
-
[]如果字典中不存在指定的key,抛出keyError异常
-
get()方法取值,如果字典中不存在指定的key,并不会抛出keyerror,而是返回None,可以通过参数设置默认的value,以便指定的key不存在时返回
'''获取字典的元素'''
score={'张三':98,'李四':77,'王五':45}
'''第一种方式,使用[]'''
print(score['张三'])
#print(score['小名']) #KeyError
'''第二种方式,使用get()'''
print(score.get('李四'))
print(score.get('小名')) #None
print(score.get('小名',99)) #99 是在查找'小名'所对的value不存在时,提供的一个默认值
字典的常用操作
- key的判断:in or not in
- 字典元素的删除:del score[‘张三’]
- 字典元素的新增:score[‘jake’]=90
'''key的判断'''
score={'张三':98,'李四':77,'王五':45}
print('张三' in score)
print('张三' not in score)
del score['张三'] #删除
#score.clear() #清空
print(score)
score['陈留']=90#新增元素
print(score)
score['陈留']=96 #修改元素
print(score)
获取字典视图
score={'张三':98,'李四':77,'王五':45}
#获取所有的key
keys=score.keys()
print(keys)#dict_keys(['张三', '李四', '王五'])
print(type(keys))
print(list(keys)) #['张三', '李四', '王五']
#获取所有的value
values=score.values()
print(values) #dict_values([98, 77, 45])
print(list(values))#[98, 77, 45]
#获取所有的key-value对
items=score.items()
print(items) #dict_items([('张三', 98), ('李四', 77), ('王五', 45)])
print(list(items))#[('张三', 98), ('李四', 77), ('王五', 45)]
字典的特点
- 字典中的所有元素都是一个key-value对,key不允许重复,value可以重复
- 字典中的元素是无序的
- 字典中的key必须是不可变对象
- 字典也可以根据需要动态地伸缩
- 字典会浪费较大的内存,是一种使用空间换时间的数据结构
字典生成式
-
内置函数zip()
- 用于将可迭代的对象作为参数,将对象中对应的元素打包成一个元组,然后返回由这些元组组成的列表。
items=['Fruits','Books','Others'] prices=[96,78,85] lst=zip(items,prices) print(list(lst))
- 用于将可迭代的对象作为参数,将对象中对应的元素打包成一个元组,然后返回由这些元组组成的列表。
本文介绍了Python中列表的创建、操作、排序,以及字典的实现、常用操作和生成式,展示了如何高效处理数据。涵盖了列表的增删改查、字典的键值对管理,以及排序和数据结构的应用。
2630

被折叠的 条评论
为什么被折叠?



