文章目录
一、数据类型 :Tuple-元组
- 一、数据类型 :Tuple-元组
- 1.元组的常见使用
- 二、数据类型 :Dict-字典
- 1.认识字典
- 2.字典的使用-添加
- 3.字典的使用-删除
- 4.字典的使用-遍历
- 5.查询key是否在字典中
- 6.集合的get方法
- 7.字典的时间复杂度
- 三、数据类型 :Set-集合
- 1.认识集合
- 2.集合的使用-添加和更新
- 3.集合的使用-集合的遍历
- 4.集合的使用-删除
- 5.集合的使用-字典强制转换为集合
- 集合的运算(交集,并集,补集,差集)
Python中的元组表现形式
格式举例创建空元组()或者tuple()创建只有一个元素的元组(1,)或者1,创建多个值的元组(1, 2, 3)或者1, 2, 3 1.元组的常见使用①遍历元组
a = (1, 2, 3, 4)
#方法一,直接遍历
for i in a:
print(i,end=' ')
#方法二,通过长度和索引
for i in range(0,len(a)):
print(a[i],end=' ')
②元组的修改
元组不可修改的类型,但是元组内部的可变类型是可以修改的,这里以元组嵌套列表为例
a=(1,2,['a','b'],3)
a[2].append('x')
print(a)
结果:
③元组的拼接和重复
元组是不可修改类型,此时的拼接和重复出的结果是新的返回值
a=(1,2)
b=(3,4)
# 通过+拼接
c=a+b
print(c)
# 通过 * 重复
d=a*3
print(d)
④元组和列表的强制互相转换
a=[1,2,3]
b=tuple(a)
print(b)
c=list(b)
print(c)
结果:
- 定义:无序的可修改的序列
- 格式:
a={'name':''蔡徐空'','age':18}
- 创建空字典:
dict()
或{}
- 注意:
- 字典的key必须是不可变类型
- 同一字典有两个相同的key,会保留后一个key的数据
1.字典名[key]=new_value
dic = {'a': 1, 'b': 2, 'c': 3}
dic['d'] = 4
print(dic)
dic['a'] = 'hello'
print(dic)
结果:
2.覆盖或者添加update()
dic1 = {'a': 1, 'b': 2, 'c': 3}
dic2={'a':'xxx','d':'zzzz'}
dic1.update(dic2) # dic1和dic2都有的key,dic1会覆盖dic2,没有的则添加至里面
print(dic1)
结果:
3.只能添加的函数setdeafult()
dic = {'a': 1, 'b': 2, 'c': 3}
dic.setdefault('a',4) # 只能添加,如果原来有同key的,不会改变
print(dic)
dic.setdefault('d',6)
print(dic)
结果:
pop()
dic = {'a': 1, 'b': 2, 'c': 3}
b = dic.pop('a') # 因为字典是无序的,所以必须写key
print(b)
print(dic)
popitem()
dic = {'a': 1, 'b': 2, 'c': 3}
b=dic.popitem()#随机弹出一个,储存为元组,删除原来字典中的一个
print(b)
print(dic)
clear()
dic = {'a': 1, 'b': 2, 'c': 3}
dic.clear()#清空列表
print(dic)
del方法
dic = {'a': 1, 'b': 2, 'c': 3}
del dic['a']#也可以删除整个字典
print(dic)
1、提取key的keys()
dic = {'a': 1, 'b': 2, 'c': 3}
print(dic.keys())
for k in dic.keys():
print(k)
结果:
2、提取value的values()
dic = {'a': 1, 'b': 2, 'c': 3}
print(dic.values())
for v in dic.values():
print(v)
结果:
3、提取key和value的items()
dic = {'a': 1, 'b': 2, 'c': 3}
print(dic.items())
for kv in dic.items():
print(kv)
#-----------------------------------------------------------------
# 还可以分别复制给k,v
dic = {'a': 1, 'b': 2, 'c': 3}
for k, v in dic.items():
print(k, v)
两种方式的结果:
dic = {'a': 1, 'b': 2, 'c': 3}
if 'a' in dic:
print('a在字典dic中')
if 'd'not in dic:
print('d不在字典dic中')
if 'a' in dic.keys():#效果同第一句话一样
print('a在字典dic中')
结果:
a={1:2,3:4}
print(a.get(1))
print(a.get(1,'0'))#查找到就返回自己的
print(a.get(5))#没查找到会返回none
print(a.get(5,'8'))#没查找到会返回自己写的指定值
7.字典的时间复杂度
注意
- 字典查找速度快,无论dict有10个元素还是10万个元素,查找速度都一样。而list的查找速度随着元素增加而逐渐下降。不过dict的查找速度快不是没有代价的,dict的缺点是占用内存大,还会浪费很多内容,list正好相反,占用内存小,但是查找速度慢。
- 字典值可以没有限制地取任何python对象,既可以是标准的对象,也可以是用户定义的,但键不行。不允许同一个键出现两次。键必须不可变,所以可以用数字,字符串或元组充当,所以用列表就不行。dict的第二个特点就是存储的key-value序对是没有顺序的!这和list不一样。
- 定义: 集合是不可重复的,无序的,不可改变的类型
- 定义集合:
a={1, 1, 1, 1, 1, 1, 3, 4, 2}
,创造空集合:b = set()
add()
a = {1, 1, 1, 1, 1, 1, 3, 4, 2}
a.add(9)
print(a)
结果:
update()
s1 = {1, }
s2 = {1, 2, }
li = [1, 3]
tup = (1, 4)
s1.update(s2)
print(s1)
s1.update(li)
print(s1)
s1.update(tup)
print(s1)
结果:
a = {1, 2, 3, 4}
for i in a:
print(i)
结果:
a = {2, 1, 3, 4}
b = a.pop() # pop()随机删除一个
print(b, a)
a.remove(3) # remove删除写的值
print(a)
a.clear() # 清空集合
print(a)
del a # 删除集合
结果:
字典变集合,只保留key值
b = {'1': 'a', '2': 'b'}
a = set(b) # 会把字典的key存到集合
print(a)
结果:
1、交集intersection()或者&
a = {1, 2, 3}
b = {2, 3, 4}
print(a & b)
print(a.intersection(b))
结果: 2、反交集symmetric_difference()或者^
a = {1, 2, 3}
b = {2, 3, 4}
print(a.symmetric_difference(b))
print(a ^ b)
结果:
3、并集union()或者|
a={1,2,3}
b={2,3,4}
print(a|b)
print(a.union(b))
结果:
4、差集difference或者-
a = {1, 2, 3}
b = {2, 3, 4}
print(a - b)
print(a.difference(b))
结果: