python的四种组合数据类型
序列是python中最基本的数据结构。序列中的每一个元素都分配一个数字->它的位置或者索引,第一个索引是0,第二个索引是1,以此类推>>>>
1.列表 list
可以存储多个可以重复的有顺序的数据
(1)含义
列表是最常用的数据类型,它可以作为一个方括号内的逗号分隔值出现。列表的数据项不需要具有相同的类型
创建一个列表,只要把逗号分割的不同数据项使用方括号括起来即可。
(2)声明
创建列表
names = list() #创建一个空列表
names = [] #创建一个空列表
(3)增删改查
1)增加列表:
append() 在列表后面增加一个新数据
insert() 在列表中指定位置增加数据
extend() 在列表中一次增加多个数据
names=list()
names.append("开发工程师")#增加一个字符串
names.append(1)#增加int类型的整型数字
print(names)
输出结果:
['开发工程师',1]
#用“insert”增加数据
names.insert(1,"数据分析师")
print(names)
输出结果:
[1, '数据分析师', '开发工程师']
names.extend(["运维工程师","测试工程师","需求分析师"])
输出结果:
[1, '数据分析师', '开发工程师', '运维工程师', '测试工程师', '需求分析师']
2)删除列表
del 列表名称 [下标]
del names[1]
print(names)
输出结果:
[1, '开发工程师', '运维工程师', '测试工程师', '需求分析师']
clear()清空列表
3)修改数据
列表名称[下标] = 新数据
names[1] = "python开发工程师"
print(names)
输出结果:
[1, 'python开发工程师', '运维工程师', '测试工程师', '需求分析师']
4)查询数据
通过编号直接查询获取数据
print(names[1])
输出结果:
python开发工程师
5)其他操作
copy()复制一个新列表
count()查看列表中某个数据出现的次数
(4)切片和遍历
切片:从原有的列表中,按照指定的位置,切出一个新列表
遍历:for循环:专门用于遍历多个数据
for n in names:
print(n)
输出结果:
1
python开发工程师
运维工程师
测试工程师
需求分析师
#元组里面有元祖
#<遍历>
names = [[0,"a"],[1,"b"],[2,"c"]]
for n in names:
print(n)
输出结果:
[0, 'a']
[1, 'b']
[2, 'c']
#逐个遍历
names = [[0,"a"],[1,"b"],[2,"c"]]
for x,y in names:
print(x,y)
输出结果:
0 a
1 b
2 c
2.元祖tuple
元祖的创建:元组创建,只需要在括号中添加元素,并使用逗号隔开即可
(1)含义
Python的元组与列表类似,不同之处在于元组的元素不能修改。只有两个可以操作的函数[count()/index()]。可以存放多个有顺序的可以重复的不能改变的数据!
(2)声明
t1 = tuple() #声明空元组
t2 = () #声明空元组
t3 = (1,2,3,4,5) #声明包含元素的元组
t4 = (“h”,) #如果只有一个元素,添加一个逗号分隔
t5 = (1,) #如果只有一个元素,添加一个逗号分隔
在程序中,如果出现了一组数据,在使用过程中,不允许修改的情况下,优先选择:元祖tuple;其次选择->列表list
查询相关数据,可以直接操作,如:len()查看元祖中元素的个数
元祖排序:使用系统默认排序~保证牌组的数据类型是一致的
元祖->转换成列表 :t2 = list(t1)
列表->转换成元祖: x2=tuple(x1)
(3)删查
只能用于删除和查询
元组中的元素值是不允许删除的,可以使用del语句来删除整个元组
程序中,如果出现了一组数据,在使用过程中,不允许修改的情况下
优先选择:元组 tuple
其次选择:列表 list
元祖:tuple,只有两个可以操作的函数[count()/index()]
可以存放多个有顺序的可以重复但不能改变的数据
查询相关函数,可以直接操作,如:len()查看元组中元素的个数
(4)遍历
3.集合set
(1)含义
通过哈希(hash)算法在一个容器中存放多个没有顺序的不可以重复的数据.如(用户的账号)
(2)声明
s1=set()
s2={"a"} //花括号中一定要加入数据
(3)增删改查
集合是用于存储和处理数据的
dir(set)
"add" 增加,
"clear" 清空,
''copy''复制,
'difference'两个集合之间求差集, (s1-s2)
'difference_update'求差集并且用不一样的数据重新给自己赋值,
'intersection'求交集,
'intersection_update'求交集并给自己赋值, 'isdisjoint', 'issubset', 'issuperset',包含与被包含
'pop'随机删除一个,(集合里面没有顺序 )
'remove'指定删除某个数据,
'union'求并集,
'update'求并集并给自己赋值
修改(删除之前的,添加新的数据)
s.remove("剪刀")
s.add("jiaodao")
需求:从多个数据中,提取一个数据使用
如果使用的是列表存储数据~通过下标/索引/编号提取某个数据
如果使用的是元组存储数据~在不修改数据的前提下,可以通过下标提取数据
如果使用集合存储数据~通过成员运算符进行判断是否存在,使用这个数据
(4)遍历
集合没有下标,不能遍历
4.字典dict
(1)含义
可以存储多个key:value 键值对数据的组合数据类型
(2)声明字典
d1 = dict() #空字典
d2 = {} #空字典
(3)增删改查
数据常见操作:增加、删除、修改、查询
clear'清空,
'copy'复制,
'fromkeys'通过制定的key生成一个值为None的字典,
'get'根据key获取对应的值,
'items'获取所有的k:v键值对,
'keys'获取所有的键,
'pop'根据key值删除一个键值对,
'popitem'随机删除一个键值对,
'setdefault'增加一个数据,如果数据存在~修改, 'update', 'values获取所有的值
增加数据
f[key] = value
f.setdefault(key,value)
f.update(key,value)
删除数据:删除一个键值对
f.pop(key) 删除指定的key:value键值对
f.popitem() 随机删除一个键值对
del f[key] 删除指定的key;value键值对
查询数据
v = f[key]
v = f.get(key)
修改数据
f[key] = value
f.update({key, value})
(4)遍历
for x in f.keys():# 直接循环字典中的key数据
print(k,f.get(k))# value数据通过key数据获取
for k, v in f.items():# 直接循环字典中的key和value数据
print(k, v)