字典:
元组
类似列表(当成容器)
特点:
1、定义的符号 ()
2、元组中的内容不可修改
list tuple dict(dictionary)
列表[] 元组() 字典{}
ele ele Key:value 键值对
element
字典:
一、增加元素
list1 = [] list1.append(element)
dict1 = {} dict1[key] = value
二、修改元素
dict1[key] = value
如果key已经存在,则直接将value赋值给key
key没有存在,则增加key及value到字典dict1中
三、查询:
list1[index] ---> element
dict1[key] --->value
in 也可用于字典操作,用于判断元素有没有在字典的key中出现
'a' in dict1
1、根据key获取值,如果key在字典中没有存在则报出 keyError 错误
dict1[key] 获取value
2、字典的内置函数:get(key),如果取不到值则不会报错,返回None
dict1.get('a')
get(key, default) --->value 如果取得值则返回字典中的值,如果取不到则返回default值
items() 取字典中所有元素,并以[(),()] 列表中元组形式表示
keys() 取字典中所有键 将键以列表形式表示
values() 取字典中所有值 将值以列表形式表示
四、删除
list1 = [2, 3, 4, 5]
del list1[1]
list1.remove(3) 删除3元素
del dict1[key] 没有则报错keyError
字典的内置删除函数
value = dict1.pop(key[,default]) --->根据key删除字典中的键值对,返回值是只要删除成功,则返回键值对的value [.pop(key[, default])] default可有可无
pop的默认值,往往是在删除的时候没有找到对应的key,则返回default默认值
popitem() 随机删除字典中的键值对(一般是从末尾删除元素) 从后面逐个删除键值对
clear() 清空字典
字典其它的内置函数
update() 合并操作 字典不支持 + 操作
dict1 = {0: 'tom', 1:'jack', 2:'lucy'} dict2 = {0: 'lily', 4:'ruby'}
dict1.update(dict2) print(dict1) #{0: 'lily', 1: 'jack', 2: 'lucy', 4: 'ruby'}
fromkeys(seq[, default]) --->将seq转成字典的形式,如果没有指定默认的value,则用None
list1 = ['aa', 'bb', 'cc']
new_dict = dict.fromkeys(list1) print(new_dict) #{'aa':None, 'bb':None, 'cc':None}
如果指定了默认值,则用default替代None
list1 = ['aa', 'bb', 'cc']
new_dict = dict.fromkeys(list1, 10) print(new_dict) #{'aa': 10, 'bb': 10, 'cc': 10}
集合:
集合: 关键字 set 无序,不重复
作用:不重复特点
声明集合 s1 = set() s2 = {} #字典:{key:value, key:value} 集合: {元素1, 元素2, 元素3 }
s1 = set() #创建空集合只能使用set()
s2 = {1, 3, 7} #大括号中有元素,则为集合
应用::将一个列表快速去重 set() 并且给排序
集合增删改:
1、增加 add() 添加一个元素,增加无序
update() 可以添加多个元素 s1.update(元组、列表)
2、删除
remove(指定元素) 如果元素存在则删除元素,不存在则报错keyError
dicard() 类似remove,移出不存在的元素时,不会报错
pop() 删除第一个元素
clear()
其它:符号操作
in
== 判断内容是否相等 例:set2 = {2, 3, 4} set3 = {2, 3, 4} set2 == set3 返回True
不支持:+ *
支持:- 差集 difference()
& 交集 intersection()
| 并集 union()
^ 对称差集 symmetric_difference() symmetric对称的 获取的是两个集合中不一样的元素
difference_update() 差集并更新
intersection_update() 交集并更新
union_update() 并集并更新
symmetric_difference_update() 对称差集并更新
可变及不可变类型 及 类型间的转换:
不可变
不可变:对象所指向的内存中的值是不可以改变
不可变类型:int string float 元组tuple
可变:
对象所指向的内存中的值可以改变 在同一个内存地址中元素发生改变,地址不变
可变类型:
字典dict 列表list 集合set
类型转换:
字符串与其它类型间的转换:
str() int() list() dict() set() tuple()
str ---> int, list, set, tuple, float
str <--- int, float
str <--- list, set, tuple
容器类:
list ---> set, tuple
list ---> dict (符合 [(key,value), (key,value), (...)])
tuple, set ---> list
dict{key:value} ---> list 只将key保存在list中