a=10 # 变量存储的是一个对象的引用
lst=[‘hello’,‘world’,98]
print(id(lst))
print(type(lst))
print(lst)
‘’’
列表的创建
‘’’
lst=[‘hello’,‘world’,98] #创建列表的第一种方式
lst2=list([‘hello’,‘world’,98]) # 创建列表的第二种方法 使用内置函数list
‘’’***
列表的特点
***’’’
**# 有序排列
lst=list([‘hello’,‘world’,98])
print(lst[0])
列表可以储存重复数据
任意类型数据混存
根据需要动态分配和回收内存
‘’‘列表的查询操作’’’
lst=list([‘hello’,‘world’,98])
print(lst.index(‘hello’)) # 如果列表当中存在N个相同元素,只返回相同元素的第一个元素的索引
print(lst.index(‘python’))
还可以在指定范围内查找
print(lst.index(‘hello’,1,3))
print(lst.index(‘hello’,0,3))
lst=[‘hello’,‘world’,98]
获取索引为2 的元素
print(lst[2]) # 正向索引0-N-1
print(lst[-3]) #逆向索引 -N —— -1
获取列表中的多个元素
‘’‘切片操作’’’
lst=[‘10’,‘20’,‘30’,‘40’,‘50’]
#start=1,stop=6,stp1
#print(lst[1:6:1]) # 新的列表对象
print(‘源列表’,id(lst))
lst2=lst[1:6:1]
print(‘切的片段’,id(lst2))
print(lst[1:6]) # 不写代表步长为1
#start 1 stop 6 step=2
print(lst[1:6:2])
print(lst[:6:2]) # 默认从0 开始 省略 star
print(lst[1::2]) # 切片操作
步长为负数
‘’‘逆序输出’’’
获取列表中的多个元素
‘’‘切片操作’’’
lst=[‘10’,‘20’,‘30’,‘40’,‘50’]
#start=1,stop=6,stp1
#print(lst[1:6:1]) # 新的列表对象
print(‘源列表’,id(lst))
lst2=lst[1:6:1]
print(‘切的片段’,id(lst2))
print(lst[1:6]) # 不写代表步长为1
#start 1 stop 6 step=2
print(lst[1:6:2])
print(lst[:6:2]) # 默认从0 开始 省略 star
print(lst[1::2]) # 切片操作
步长为负数
‘’‘逆序输出’’’
‘’‘start=7 stop省略 step=-1’’’
print(lst[7::-1])
‘’‘逆序真的是太方便了哈哈哈’’’
列表的元素查询操作
print('p’in ‘python’)
print(‘k’ not in ‘python’)
lst=[‘10’,‘20’,‘30’,‘python’]
print(‘10’ in lst)
print(‘100’ in lst)
print(‘p’ in lst)
向列表的末尾添加一个元素
lst=[‘10’,‘20’,‘30’]
lst.append(100) # 在列表的末尾添加一个元素
print(lst,id(lst))
lst2=[‘hello’,‘world’]
lst.append(lst2) # 将lst2 作为一个元素添加到列表的末尾
print(lst)
lst.extend(lst2) # 再 lst 的尾部扩展了嘿嘿 一次性添加多个元素
print(lst)
在任意位置上添加一个元素
lst.insert(1,90)
print(lst)
在任意位置添加n多个元素
lst3=[‘Ture’,‘False’,‘hi’]
lst[1:]=lst3
print(lst)
列表元素的删除操作
lst=[‘10’,‘20’,‘30’]
lst.remove(‘30’)
print(lst)
pop()根据索引去移除元素
lst.pop(1)
print(lst)
如果指定的索引位置不存在,则抛出异常
lst.pop() #如果不指定参数将删除列表中的最后一个参数
print(lst)
‘’‘切片 至少删除一个元素 将产生一个新的列表对象’’’
lst2=[10,20,30,40,50,60,70]
new_lst2=lst2[1:3]
print(lst2)
print(new_lst2)
‘’‘不产生新的列表对象而删除元列表中的内容’’’
lst2[1:3]=[]
print(lst2)
‘’‘清除列表中的所有元素’’’
lst.clear()
print(lst)
#del lst2
#print(lst2) 最霸道直接删 现在输出会报错
列表元素的删除操作
lst=[‘10’,‘20’,‘30’]
lst.remove(‘30’)
print(lst)
pop()根据索引去移除元素
lst.pop(1)
print(lst)
如果指定的索引位置不存在,则抛出异常
lst.pop() #如果不指定参数将删除列表中的最后一个参数
print(lst)
‘’‘切片 至少删除一个元素 将产生一个新的列表对象’’’
lst2=[10,20,30,40,50,60,70]
new_lst2=lst2[1:3]
print(lst2)
print(new_lst2)
‘’‘不产生新的列表对象而删除元列表中的内容’’’
lst2[1:3]=[]
print(lst2)
‘’‘清除列表中的所有元素’’’
lst.clear()
print(lst)
del lst2
print(lst2)
‘’‘列表元素的修改操作’’’
lst=[10,20,30]
一次只修改一个值
lst[2]=100
print(lst)
lst[1:3]=[300,400,500]
print(lst)
‘’‘列表元素的排列操作’’’
常见的两种方式
第一种方式 sort()方法
lst=[20,40,10,98,54]
print(lst)
调用列表对象的sort方法,升序排序
lst.sort()
print(lst,id(lst))
lst.sort(reverse=True) # 标识降序排序
print(lst)
如果不指定reverse 默认为False 升序
‘’‘使用内置函数sorted()对列表进行排序,将产生一个新的列表对象’’’
lst=[20,40,10,98,54]
print(lst)
开始排序
new_list=sorted(lst)
print(new_list)
指定关键字参数,实现列表元素的降次排序
desc_lst=sorted(lst,reverse=True)
print(desc_lst)
‘’‘列表生成式’’’
lst=[i for i in range(1,10)]
print(lst)
lst=[i*i for i in range(1,10)]
print(lst)
注意事项 这个里面应该有一定的规则
‘’‘列表中的元素为2,4,6,8,10’’’
lst2=[i*2 for i in range(1,6)]
print(lst2)
字典 { } 使用这个大括号定义字典
字典的创建
‘’‘使用{}去创建字典’’’
scores={‘张三’:100,‘李四’:200}
print(scores)
‘’‘字典的常用操作’’’
‘’‘获取字典的元素’’’
scores={‘张三’:100,‘李四’:200}
‘’‘第一种方式 使用[]’’’
print( scores[‘张三’])
print(scores.get(‘李四’))
‘’‘区别就是你要查找的键不存在 一个报错 get’’’