2020.12.18周末细看再补充(-。-)
说到做到
9.1 元组创建
tup1 = (‘Google’, ‘atguigu’, 1997, 2000);
tup2 = (1, 2, 3, 4, 5 );
tup3 = “a”, “b”, “c”, “d”; # 不需要括号也可以
9.2 元组值获取
tup1[1]
tup1[1:5]
9.3 元组更新
元组不允许更新
9.4 删除元组元素
del tup[0]
9.5 元组运算符
表达式 结果 描述
len((1, 2, 3)) 3 计算元素个数
(1, 2, 3) + (4, 5, 6) (1, 2, 3, 4, 5, 6) 连接
(‘Hi!’,) * 4 (‘Hi!’, ‘Hi!’, ‘Hi!’, ‘Hi!’) 复制
3 in (1, 2, 3) True 元素是否存在
for x in (1, 2, 3): print (x,) 1 2 3 迭代(生成器)
9.6元组内置函数
方法 描述 实例
len(tuple) 计算元组元素个数 len(tuple1)
max(tuple) 返回元组中元素最大值 max(tuple2)
min(tuple) 返回元组中元素最小值 min(tuple2)
tuple(seq) 将列表转换为元组 list1= [‘Google’, ‘Taobao’, ‘Runoob’, ‘Baidu’]
tuple1=tuple(list1)
tuple1 = (‘Google’, ‘Taobao’, ‘Runoob’, ‘Baidu’)
10. 字典
在字典中,键必须不可变,所以可以用数字,字符串或元组充当,而用列表就不行。
10.1 字典创建
dict = {‘Alice’: ‘2341’, ‘Beth’: ‘9102’, ‘Cecil’: ‘3258’}
dict = {x:x+1 for x in range(10)}
10.2 字典值获取
dict[‘Alice’]
10.3 更新字典
dict[‘Alice’] = 10
10.4 删除字典元素
del dict[‘Alice’]
del dict
10.5 字典内置函数&方法
函数 描述 实例
len(dict) 计算字典元素个数,即键的总数。 dict = {‘Name’: ‘Runoob’, ‘Age’: 7, ‘Class’: ‘First’}
len(dict)
str(dict) 输出字典,以可打印的字符串表示。 dict = {‘Name’: ‘Runoob’, ‘Age’: 7, ‘Class’: ‘First’}
str(dict)
“{‘Name’: ‘Runoob’, ‘Class’: ‘First’, ‘Age’: 7}”
type(variable) 返回输入的变量类型 dict = {‘Name’: ‘Runoob’, ‘Age’: 7, ‘Class’: ‘First’}
type(dict)
<class ‘dict’>
radiansdict.clear() 删除字典内所有元素
radiansdict.copy() 返回一个字典的浅复制
radiansdict.fromkeys() 创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值
radiansdict.get(key, default=None) 返回指定键的值,如果值不在字典中返回default值
key in dict 如果键在字典dict里返回true,否则返回false
radiansdict.items() 以列表返回可遍历的(键, 值) 元组数组
radiansdict.keys() 返回一个迭代器,可以使用 list() 来转换为列表
radiansdict.setdefault(key, default=None) 和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default
radiansdict.update(dict2) 把字典dict2的键/值对更新到dict里
radiansdict.values() 返回一个迭代器,可以使用 list() 来转换为列表
pop(key[,default]) 删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。
popitem() 随机返回并删除字典中的一对键和值(一般删除末尾对)。
扩展:
1. 浅拷贝:
只拷贝引用地址,未拷贝内容:
a = [1,2,3,4,5]
b = a
2. 深拷贝:
拷贝引用地址和内容:
a = [1,2,3,4,5]
import copy
b = copy.deepcopy(a)
可以递归拷贝;一拷到底
注意:
1、对于不可变类型 Number String Tuple,浅复制仅仅是地址指向,不会开辟新空间。
2、对于可变类型 List、Dictionary、Set,浅复制会开辟新的空间地址(仅仅是最顶层开辟了新的空间,里层的元素地址还是一样的),进行浅拷贝
3、浅拷贝后,改变原始对象中为可变类型的元素的值,会同时影响拷贝对象的;改变原始对象中为不可变类型的元素的值,只有原始类型受影响。
-
Set集合
集合不支持切片操作。
11.1 Set集合创建
s = {‘name’,‘aa’,‘bb’}
s = set(序列) # dict序列,值添加key
s = {x for x in range(10) if x not in range(5,10)}
11.2 Set集合添加元素
s.add(x) # 添加单个元素
s.update(x) # 添加序列元素
11.3 移除元素
s.remove(x) # 移除单个元素
s.discard(x) # 移除集合(不存在不报错)
s.pop() # 随机删除集合中的一个元素
11.4 集合操作方法
方法 描述
len(s) 查看集合的长度
s.clear() 清空集合
x in s 判断元素是否在集合中add() 为集合添加元素
clear() 移除集合中的所有元素
copy() 拷贝一个集合
difference() 返回多个集合的差集
difference_update() 移除集合中的元素,该元素在指定的集合也存在。
discard() 删除集合中指定的元素
intersection() 返回集合的交集
intersection_update() 删除集合中的元素,该元素在指定的集合中不存在。
isdisjoint() 判断两个集合是否包含相同的元素,如果没有返回 True,否则返回 False。
issubset() 判断指定集合是否为该方法参数集合的子集。
issuperset() 判断该方法的参数集合是否为指定集合的子集
pop() 随机移除元素
remove() 移除指定元素
symmetric_difference() 返回两个集合中不重复的元素集合。
symmetric_difference_update() 移除当前集合中在另外一个指定集合相同的元素,并将另外一个指定集合中不同的元素插入到当前集合中。
union() 返回两个集合的并集
update() 给集合添加元素