copy() 潜赋值
- 这里我们以 字典 为例,代码如下:
x = {'name': {'name':'亮亮'}, 'age': 22, 'sex': 'man', 'length': 1.75}
x2 = x.copy()
x2['name']['name']= 'iron man'
print(x)
print(x2)
# {'name': {'name': 'iron man'}, 'age': 22, 'sex': 'man', 'length': 1.75}
# {'name': {'name': 'iron man'}, 'age': 22, 'sex': 'man', 'length': 1.75}
x 和 x2 不是同一个对象,但我们对 x2 进行更改时,x 也发生了改变。这是因为 潜复制只会复制字典本身,如果字典中还有个字典是不会进行复制的
遍历字典
- dict.keys()
x = {'name': '毛日古', 'age': 22, 'sex': 'man', 'length': 1.75}
print(x.keys(),type(x.keys()))
# dict_keys(['name', 'age', 'sex', 'length']) <class 'dict_keys'>
以 列表 的形式返回所有的 key
- dict.values()
x = {'name': '毛日古', 'age': 22, 'sex': 'man', 'length': 1.75}
print(x.values(),type(x.values()))
# dict_values(['毛日古', 22, 'man', 1.75]) <class 'dict_values'>
以 列表 的形式返回所有的 value
- dict.items()
x = {'name': '毛日古', 'age': 22, 'sex': 'man', 'length': 1.75}
print(x.items())
for k,v in x.items():
print(v)
'''
dict_items([('name', '毛日古'), ('age', 22), ('sex', 'man'), ('length', 1.75)])
毛日古
22
man
1.75
'''
返回 双值子序列 ,并且可以用 for 循环取值
集合的简介
# 1 集合中只能存储不可变对象
# 2 集合中存储的对象是无序的(不是按照元素的插入顺序保存的)
# 3 集合中不能出现重复的元素
- 添加元素(add)
s = {1,2,3,4,5,6,8,7,9,8,8,8,8,8,8}
s.add(100)
# {1, 2, 3, 4, 5, 6, 7, 8, 9, 100}
- 将一个集合的元素添加到另一个集合当中(update)
s = {1,2,3,4,5,6,8,7,9,8,8,8,8,8,8}
s2 = {10,11,12,13}
s.update(s2)
print(s)
# {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13}
注意:这里是把 s2 的元素添加到 s 当中
- 删除元素(remove 和 pop)
s = {1,2,3,4,5,6,8,7,9,8,8,8,8,8,8}
s.remove(2)
print(s)
# {1, 3, 4, 5, 6, 7, 8, 9}
s = {1,2,3,4,5,6,8,7,9,8,8,8,8,8,8}
s.pop()
print(s)
# {2, 3, 4, 5, 6, 7, 8, 9}
remove 是删除指定的元素,而 pop 是随机删除一个元素
- 清空集合(clear)
s = {1,2,3,4,5,6,8,7,9,8,8,8,8,8,8}
s.clear()
print(s)
# set()
清空集合,返回一个 空集合
集合的运算
- 交运算(&)
s = {1,2,3,4,5,6,7}
s1 = {4,5,6,7,8,9}
print(s & s1)
# {4, 5, 6, 7}
- 并运算(|)
s = {1,2,3,4,5,6,7}
s1 = {4,5,6,7,8,9}
print(s | s1)
# {1, 2, 3, 4, 5, 6, 7, 8, 9}
- 差运算(-)
s = {1,2,3,4,5,6,7}
s1 = {4,5,6,7,8,9}
print(s - s1)
# {1, 2, 3}
- 亦或运算(^)
s = {1,2,3,4,5,6,7}
s1 = {4,5,6,7,8,9}
print(s ^ s1)
# {1, 2, 3, 8, 9}
- 其他运算
<= 检查一个集合是否是另一个集合的子集
< 检查一个集合是否是另一个集合的真子集
>= 检查一个集合是否是另一个集合的超集
> 检查一个集合是否是另一个集合的真超集
函数的简介
- 函数可以用来保存一些可执行的代码,并且可以在需要的时候,多次对这些代码调用。使用关键字 def 创建
def functionname([parameterlist]):
代码块
调用函数
函数对象()
def jiemei(a,b):
print(sum([a,b]))
jiemei(10,30)
# 40
函数的参数
# 在定义函数的时候,可以在函数名后面的括号中定义数量 不等的形参
# 定义多个形参要用,隔开
# 形参(形式参数) 定义形参就是相当于在函数内部声明了变量,不是赋值
# 实参(实际参数) 如果函数定义的时候指定了形参,那么在调用的时候也必须传递实参
# 实参将会赋值给对应的形参,简单来说,有几个形参就得几个实参
函数的传递方式
- 位置传参
位置传参就是将对应位置上的实参赋值给对应位置上的形参
def jiemei(a,b):
print(a + b)
jiemei(10,30)
# 40
- 关键字传参
关键字传参可以不按照形参定义的顺序去传递,可以直接根据参数名去传递。位置参数和关键字参数可以混合使用,但是关键字产生不能放到位置参数的前面
def jiemei(a,b):
print(a + b)
jiemei(10,b = 30)
# 40