#全部是重点知识,必须会。
了解序列和索引|的相关概念
掌握序列的相关操作
掌握列表的相关操作
掌握元组的相关操作
掌握字典的相关操作
掌握集合的相关操作
1,序列和索引
1,序列是一个用于存储多个值的连续空间,每一个值都对应一个整数的编号,称为 索引。
2,属于序列结构的还有列表,元组,集合和字典。
- 列表和元组称为有序序列。
- 集合和字典称为无需序列。
#正向递增
s='helloworld'
for i in range(0,len(s)):
print(i,s[i],end='\t\t') #\t不换行输出
print('\n--------------')
#反向递减
for i in range(-10,0):
print(i,s[i],end='\t\t') #\t不换行输出
切片
- 省略1。默认从0开始。
- 省略1,2
- 省略1,3
- 省略2。默最后一个元素包含最后一个。
- 省略2,3
- 省略3。默认步长为1.
- 省略1,2,3
s='helloworld'
#切片操作
s1=s[0:5:2]
print(s1)
#如果省略start,默认从0开始。
print(s[:5:2])
#省略start和end
print(s[::2])
#step为-1 逆序序列***
print(s[::-1])
print(s[-1:-11:-1])
#省略start和step。
print(s[:5:])
#省略end,默认到序列的最后一个元素(包含最后一个元素)
print(s[0::1])
#省略end和step,
print(s[5::])
print(s[5:])
#全省略就都打印
print(s[::])
#更改step
print(s[0:5:2])
序列
#序列的相加
print('*'*10)
print('hello'+'world')
#x in s的使用
s='helloworld'
print('l是在s中存在吗?',('l' in s))
print('k是在s中存在吗?',('k' in s))
#x not in s的使用
print('l是在s中存在吗?',('l'not in s))
print('l是在s中存在吗?',('k'not in s))
#内置函数
print(len(s))#len:列出元素的个数
print(max(s))#按照ACSII码计算
print(min(s))
#序列的相关方法
print('s.index',s.index('o'))
print('s.index',s.index('l'))
print('s.count',s.index('l'))
2,列表
- 是指一系列的按特定顺序排列的元素组成。
- 是Python中内置的可变序列
- 在Python中使用[]定义列表,元素与元素之间使用英文的逗号分隔
- 列表中的元素可以是任意的数据类型
- 字符串是不可变序列。
#(1)用 []直接创建列表
#语法:
列表名=[element1,element2...]
#(2)用内置函数list()创建列表
#语法:
列表名=list(序列)
#列表的删除
#语法:
del 列表名
#直接使用[]创建列表
lst=['python','hello',888,3.14]
print(lst)
#内置函数list()创建列表
lst2=list('pythonpyhton')
lst3=list(range(1,10,2))
print(lst2)
print(lst3)
#列表是序列中的一种,对序列的操作,运算符,函数均可以使用
print(lst3+lst2)
print(lst3*3)
print(max(lst3))
print(min(lst3))
print(len(lst))
print(lst2.index('y'))
print(lst2.count('o'))
#列表的删除
lst4=[10,20,30]
del lst4
enum函数
列表的遍历操作有三种:
- for循环
- for循环+索引
- enumerate
lst=['hello','linux','python','world']
#使用遍历循环for遍历列表元素
for item in lst:
print(item)
#使用for循环,range函数,len函数,根据索引遍历
for i in range(0,len(lst)):
print(i,'--->',lst[i])
#enumerate函数
for index,item in enumerate(lst):
print(index,item)
print('\n----------')
#手动修改序列号的起始值
for index,item in enumerate(lst,start=1):
print(index,item)
列表类型
lst=['hello','linux','python','world']
print('原列表',lst,id(lst))
lst.append(100)
print('附加后',lst,id(lst))
lst.insert(2,'mysql')
print('指定增加',lst,id(lst))
lst.pop(1) #这个1是索引
print('先取后删',lst,id(lst))
# lst.remove('linux')
# print('指定删除',lst,id(lst))
lst.reverse()
print('反转后',lst,id(lst))
# lst.clear()
# print('全清后',lst,id(lst))
new_lst=lst.copy() #会产生新列表对象
print(lst,id(lst))
print(new_lst,id(new_lst))
#list的修改操作
lst[1]='mysql'
print(lst)
列表排序
lst=[1,5,8,10,6,88,3.14]
print('原列表',lst)
lst.sort()
print('升序',lst)
lst.sort(reverse=True)
print('降序',lst)
print('-'*30)
lst2=['a','d','c','B']
print('原列表',lst2)
#忽略大小写。升序排序,先排大写,再排消写。降序反之
lst2.sort(key=str.lower)
print('升序',lst2)
print('-'*30)
#sorted内置函数会产生新列表对象
lst=[1,5,8,10,6,88,3.14]
print('原列表',lst)
#sorted内置函数会产生新列表对象
asc_lst=sorted(lst)
print('升序',asc_lst)
desc_lst=sorted(lst,reverse=True)
print('降序',desc_lst)
列表生成式
import random #随机导入数字
lst=[item for item in range(1,11)]
print(lst)
lst=[item*item for item in range(1,11)]
print(lst)
#random.randint()的用法:用于生成一个指定范围内的随机整数
lst=[random.randint(1,100) for item in range(10)]
print(lst)
#从列表中选择符合条件的元素组成新的列表
lst=[i for i in range(10) if i%2==0]
print(lst)
#创建二维列表
lst=[
['城市','环比','同比'],
['北京',100,101],
['上海',102,103],
['深圳',104,105]
]
print(lst)
#遍历二维列表使用双层for循环
for row in lst: #行
for item in row: #列
print(item,end='\t')
print()
#列表生成式生成一个4行5列的二维列表
lst2=[[j for j in range(5)] for i in range(4)]
print(lst2)
3,元组
- 是内置的不可变序列
- 是python中使用()定义元组,element直接用英文的逗号隔开
- 元组中只有一个元素的时候,逗号也不能省略
#使用小括号创建元组
t=('hello',[10,20,30],'python','linux',50)
print(t)
#使用内置函数tuple创建元组
t=tuple('helloworld')
print(t)
t=tuple([10,20,30])
print(t)
#在序列中的应用
print('2在tuple中是否存在:',(10 in t))
print('2在tuple中是否存在:',(10 not in t))
print('min:',min(t))
print('max:',max(t))
print('t.index:',t.index(10))
print('t.count:',t.count(10))
#如果元组只有一个element
x=(1)
print(x,type(x))
y=(1,)
print(y,type(y))
#tuple的删除
# del x
# print(x)
遍历
t=('python','hello','world')
#根据索引访问元组
print(t[1])
#元组切片操作
t2=t[:3:2]
print(t2)
#(1)元组的遍历
for item in t:
print(item)
#(2)使用for+range+len
for i in range(len(t)):
print(i,t[i])
#使用enumerate
for index,item in enumerate(t):
print(index,'--->',item)
tuple
#元组也有生成式,只不过元组的生成式是一个生成器对象,需要转换成tuple或list才能查看。
t=(i for i in range(1,4))
print(t)
# t=tuple(t)
# print(t)
# #遍历1
# for item in t:
# print(item)
#遍历2
print(t.__next__())
print(t.__next__())
print(t.__next__())
#都取完了,如果再打印就为空
t=tuple(t)
print(t)
4,字典
字典类型是根据一个信息查找另一个信息的方式构成了"键值对”,它表示索引|用的键和对应的值构成的成对关系。
字典为可变数据类型。其中键是不可变序列。字符串,整数,浮点,元组可以作为字典中的键,但是列表不行。
字典类型
#(1)创建字典
d={10:'cat',20:'dog',30:'pet',20:'zoo'}
print(d) #key相同时,value值进行了覆盖
#(2)zip函数
lst1=[10,20,30]
lst2=['ls','cd','pwd','cs']
zipobj=zip(lst1,lst2)
print(zipobj) #<zip object at 0x019AC1C8>
#print(list(zipobj)) #[(10, 'ls'), (20, 'cd'), (30, 'pwd')]
d=dict(zipobj)
print(d) #{10: 'ls', 20: 'cd', 30: 'pwd'}
#使用参数创建dict
d=dict(cd=1,ls=2)
print(d) #左侧为key,右侧为value
t=(10, 20,30)
print({t:10}) # t是key, 10是value , 元组是可以作为字典中的key
#字典属于序列
print('max:',max(d))
print('min:',max(d))
print('len:',len(d)) #看的是元素的个数
#删除
del d
取值与遍历
d={'hello':10,'world':20,'python':30}
#访问字典中的元素
#(1)使用d[key]
print(d['python'])
#(2)d.get(key)
print(d.get('hello'))
#二者之间是有区别的,如果key不存在,d[key]报错d.get(key)可以指定默认值
print(d.get('java','不存在'))
#dict遍历
for item in d.items():
print(item) #key=value组成的一个元素
#在使用for遍历时,分别获取key,value
for key,value in d.items():
print(key,value)
相关操作
d={'hello':10,'world':20,'python':30}
print(d)
#添加
d['linux']=40
print(d)
#获取dict中所有的key
key=d.keys()
print(key)
print(list(key))
print(tuple(key))
#获取字典中所有的value
values=d.values()
print(values)
print(list(values))
print(tuple(values))
#如何将字典中的数据转侧灰姑娘键值对的形式,以元组的形式展示
lst=list(d.items())
print(lst)
空字典,空元组,空列表为False
字典生成式
import random
d={item:random.randint(1,100) for item in range(4)}
print(d)
#创建两个列表
lst1=[1001,1002,1003]
lst2=['hello','world','python']
d={key:value for key,value in zip(lst1,lst2)}
print(d)
5,集合
- Python中的集合与数学中集合的概念一致
- Python中的集合是一个无序的不重复元素序列
- 集合中只能存储不可变数据类型
- 在Python中集合使用{}定义
- 与列表、字典一样,是Python中的可变数据类型
集合类型
#{}直接创建集合
s={10,20,30}
print(s)
#使用set()创建集合
s=set() #创建空集合
print(s)
s={}#创建的是字典
print(s,type(s))
s=set('helloworld')
print(s)
s2=set([10,20,30])
print(s2)
s3=set(range(1,10))
print(s3)
#集合属于序列的一种,可以用序列测试
#max,min,len,in ,not in
#删除
del s3
操作符
A={10, 20,30, 40, 50}
B={30, 50,88, 76, 20}
print(A&B)
相关操作
A={10, 20,30, 40, 50}
#A.add(100)
#A.remove()
# A.clesr
# print(A)
#集合遍历
for item in A:
print(item)
for index,item in enumerate(A):
print(index,'-->',item)
pass
#生成式
s={i for i in range(1,10)}
print(s)
s={i for i in range(1,10) if i%2==1}
print(s)