1 集合类型:一维数组的集合
List列表是一个有序且可变的集合。允许重复成员。
turple元组是一个有序且不可更改的集合。允许重复成员。
Set集合是一个无序且无索引的集合。没有重复的成员。
dict字典是一个有序*且可变的集合。没有重复的成员。
!!!从 Python 3.7 版开始,字典才是有序的!!
2 列表类型(序列)
列表是使用方括号创建的:列表项值可以是任务数据类型
创建新列表时也可以使用 list() 构造函数
列表允许出现重复 由于列表已编入索引,因此列表可以包含具有相同值的项目:
mylist = ["一号", "二号", "三号"]
print(mylist)
mylist2=list["一号", "二号", "三号"]
print(mylist2)
mylist3 = ["一号", "四号", "三号","9号"]
print(mylist3)
支持根据需求列出列表值 1 单个索引,正常索引 :通过引用索引号来访问 注意:第一项的索引为 0。 2 负索引: 负索引意味着从头开始,-1指最后一项, -2指倒数第二项等。 3 索引范围 4 负指数范围
print(mylist[0])
print(mylist[-2])
print(mylist3[0:2]) #2不在内
print(mylist3[-2:-1])
可遍历列表 1 循环遍历列表for 。 2 遍历索引号 3 while循环遍历索引
for i in mylist :
print(i)
for i in range(len(mylist)):
print([i])
i =0
while i < len(mylist):
print(mylist[i])
i+=1
列表长度 len()函数表示
print(len(mylist))
检查列表是否存在符合条件的数据 指定数据 请使用in关键字。
print('四' in mylist3)
if '四号' in mylist3:
print("数据存在")
更改列表值,可通过索引号 1 单索引 2 多索引 多个更改
mylist3[0]='五号啦'
print(mylist3)
mylist3[0:3]=['6号啦','对得了']
print(mylist3)
插入列表 从哪起插入,然后插入后,之前的数据往后,插入的数据是哪个就是第几个, 也可以指定位置添加数据
mylist4 = ["一号", "四号", "三2号","10号",'888']
mylist4.insert(1,'cahrule')
print(mylist4)
末尾加数据 用将值添加到列表的末尾,请使用append() 方法:
mylist4.append("moweitianj")
print(mylist4)
合并列表数据 将另一个列表中的元素附加到当前列表,请使用extend()方法。
注意:extend()方法不一定要 列表,您也可以添加任何可迭代对象(元组、集合、字典等)。
mylist4.extend(mylist3)
删除列表
删除指定目标 remove()方法
删除指定索引 pop()方法, 需要注意的是, 如果不指定索引,该pop()方法将删除最后一项。
del删除指定的索引 ,del关键字也可以完全删除列表, 也可以试试看看,但是会把列表删除找不到
mylist5 = ["一号", "四号", "三9号","10号",'8998']
mylist5.remove('一号')
print(mylist5)
mylist5.pop(2)
print(mylist5)
del mylist5[0]
print(mylist5)
del mylist5
print(mylist5) #数据列表不存在
clear()方法清空列表。该列表仍然存在,但没有内容。
mylist6 = ["一号", "四号", "三9号","10号",'8998']
mylist6.clear()
print(mylist6)
列表排序 区分大小写的排序
默认情况下,该sort()方法区分大小写,导致所有大写字母都排在小写字母之前:
不区分大小写的排序 str.lower 作为键函数:
mylist8= ["ABH", "aboh", "sudi","13号",'234']
mylist8.sort()
print(mylist8)
mylist8.sort(key=str.lower)
print(mylist8)
倒序
reverse()方法反转元素的当前排序顺序。
mylist8.reverse()
print(mylist8)
复制列表 copy()方法制作列表的副本: list()方法制作列表的副本:
mcopylist=mylist8.copy()
mylisys=list(mylist8)
print(mcopylist)
print(mylisys)
3 元组类型
什么是元组,简单的理解就是将一堆数据存放到一个容器中
但这个容器有一个特点,就是很固执,一旦定义了之后就不可改变,从某种意义上来说元组就是不可以改变的列表,功能和列表类似,同样可以进行切片、修改等操作。
元组的定义和列表类似,在括号中添加元素,元素之间使用逗号隔开
my_tuple=(1,2,5,7)
print(my_tuple)
tuple()函数:此函数的作用有两个:(1)可以使用tuple()创建一个空的元组
my_blank=()
my_blank2=tuple()
print(type(my_blank2),my_blank2)
任意无符号的对象,以逗号隔开,默认为元组, 元组应该要放到括号中,列表应该放到中括号中,然后用逗号来分割里面的元素,但是如果你什么符号都不使用,仅仅用逗号分割多个元素,这个时候Python默认你传入的参数类型为元组
my_tuples=1,2,3,88
print(type(my_tuples),my_tuples)
需要注意的是 如果元组中只有一个元素的话,需要在元素的后面加上一个逗号,否则元组只有一个元素不加逗号话,那么python 并不会认为它是一个元组
my_tuple1=(1,)
my_tuple2=(1)
print(type(my_tuple1),my_tuple1)
print(type(my_tuple2),my_tuple2)
元组也可以定义一个二维元组或者多维元组 ,并能够进行遍历
my_tuple3=((1,3),(5,6)) #多维组遍历出来展示
for i in my_tuple3:
print(i)
for i in my_tuple3: #列表数据遍历循环出来展示
for cs in i:
print(cs)
访问元组 访问和列表一样也是通过索引号来访问的 索引也是从0开始
my_tuple5=(1,2,5,7,9,3)
print(my_tuple5[0])
访问元组中某个范围元素的时候,此时就需要使用到切片的操作 和list 用法很多相似
print(my_tuple5[0:3])
print(my_tuple5[-3:-2])
将对应数据类型转换成元组
str='好的'
mytuple=tuple(str)
print(type(mytuple))
最大值 最小值
print(max(my_tuple5))
print(min(my_tuple5))
index()函数: 查找元组中某个元素在元组中的位置,如果元素出现多次则返回元素第一次出现的索引 index()函数,如果不指定范围,默认是查找整个元组,我们也可以指定范围
print(my_tuple5.index(1))
count()函数:统计元素出现的次数
print(my_tuple5.count(3))
和列表区别 由于元组是不可以修改的,所以使用元组最大的好处就是保证数据安全,一旦数据确定就无法修改其内容,除非你使用del指令将整个元组删除。
4 字典类型 增删改查
字典以键值对(key: value)的方式存储对象。
键(key)在字典中必须是唯一的,且键是不可变的数据类型,如字符串、数字、元组。如果创建时键被赋值多次,最后一个值才被存储。
值(value)可以是任意对象,比如None、数值、字符串、字典等。
dict2={'a':'kevin','b':'Toke'}
dict3=dict((('name','xiaoyu'),))
print(dict2)
print(dict3)
print(type(dict2))
创建空字典
d={}
d=dict()
如果出现重复键值,后面的值会替换前面的值
diren={'age':'2','ha':'u','age':'9','oos':''}
print(diren)
遍历字典
dict1 = {'name': 'Tom', 'age': 18, 'gender': 'male'}
遍历键
for key in dict1:
print(key)
遍历值
for value in dict1.values():
print(value)
遍历键值对
for key, value in dict1.items():
print(key, value)
增加值
dictadd={'a':'kevin','ha':'u'}
dictadd['add']='add2'
print(dictadd)
键存在,不改动,返回字典中对应的建对值
a=dictadd.setdefault('age',99)
print(a)
print(dictadd)
键存在,不改动,值为空,返回字典中对应的建对值
a=dictadd.setdefault('oos',299)
print(a)
print(dictadd)
键不存在,在字典中增加新的键值对,并返回相应的值
a=dictadd.setdefault('hus',199)
print(a)
print(dictadd)
组合添加 向字典添加新内容的方法是增加新的键/值对——update
dictadd.update(diren) #如果有重复的键,则覆盖
print(dictadd)
#查询
dic4 = {'name': 'cgk', 'age': '20', 'hobby': 'girl'}
print(dic4['hobby']) #通过键查询值
print(dic4.values())#打印所有值
print(dic4.keys())
print(dic4.items())
print(list(dic4.keys())) #列表输出
修改
dictuppdate={'a':'kevin','b':'Toke'}
dictuppdate['a']='update' #已有的修改
dictuppdate['add']='addupdate' #找不到有的,就是add
print(dictuppdate)
删除
deldate={'duide':'haode','nam':'好的呢','nams':'yuo'}
del deldate['duide'] #删除键,便删除了值
re =deldate.pop('nam') #通过pop删除键是hoppy的条目,并返回删除的值
print(re)
清空字典只是晴空字典的所有内容,但字典还存在
del 字典 则是将字典全部删除,包括形式及内容
print(deldate) #清空字典
deldate.clear()
print(deldate)
#del deldate #
#print(deldate)