奋斗小糖果
1.遍历字典
遍历字典的三种方法:
- key的遍历------keys()
- 值value的遍历-----values()
- 序列的遍历-----items()
1.1 key的遍历
keys() 该方法返回字典所有的key。
d = {'name':'葫芦娃','age':10,'sex':'男'}
for i in d.keys():
print(i,d[i])
name 葫芦娃
age 10
sex 男
1.2 values()遍历
d = {'name':'葫芦娃','age':10,'sex':'男'}
for v in d.values():
print(v)
葫芦娃
10
男
1.3 items()遍历
d = {'name':'葫芦娃','age':10,'sex':'男'}
for k,v in d.items():
print(k,v)
name 葫芦娃
age 10
sex 男
2. 集合set()
集合和列表相似
-
集合与列表的不同点
(1)集合只能储存不可变对象
(2)集合中存储的对象是无序的,即:元素不可能通过位置索引获取
(3)集合中不能出现重复元素
注意:集合为无序决定了不可能用位置来获取元素;
储存不可变对象,意味着不能存储有序的对象,即集合中不能以有序的序列当做元素。 -
语法
#使用{}来创建
s = {10,5,3,4,1,2,1,2,1,1,2,2,2}
-
set()函数可以将序列和字典转换为集合
注意:如果使用set()将字典转换为集合的时候,只会包含字典的键 -
通用操作
该操作和之前列表中介绍的通用操作一致,可以参考前面的知识点。
add()向集合中添加元素
s.add(元素)
update() 将一个集合中的元素添加到另一个集合中
s.update(s1)#后一个s1向前一个s添加元素,并更新s
remove() 删除集合中指定的元素
pop() 随机删除集合中的一个元素
clear() 清空集合中的元素
2.1 集合运算
分类
- 交集运算
计算出另个集合中都存在的元素,并返回出来 - 并集运算
将两个集合中的元素全都展现出来,但不存在重复值 - 差集运算
差集运算返回的是第一个被减数不同于减数的元素
s = {1,2,3,4,5}
s2 = {3,4,5,6,7}
print(s-s2)#1,2
print(s2-s)#6,7
- 亦或集运算
返回两个集合中的差异元素集合
s = {1,2,3,4,5}
s2 = {3,4,5,6,7}
# ^ 亦或集
r = s2 ^ s
print(r)
{1, 2, 6, 7}#1,2,是集合s中不同于集合s2的元素;6,7是结合s2中不同于集合s的元素,因此,亦或集返回的是两个集合中的差异元素的集合。
3.函数
3.1函数简介
分装
继承
调用
- 函数是个对象,可以用变量来理解,储存功能用的。
- 函数可用来保存可执行的代码,并且可以在需要的时多次调用。
3.2语法
def 函数名(形参1,形参2,,,,,):
代码块
定义一个函数
def fn():
print('这是第一个函数')
解释:根据函数两个特性,函数是个对象,需要的时候再来调用。
首先定义的这个函数中,fn为函数对象,fn()为调用函数,fn可以使用不同的名,但需要符合python对象原则。
3.3 函数的参数传递方式
定义形参的时候,可以为形参指定默认值。若指定默认值后,如果用户传递了参数,则默认值没有任何作用。如果用户没有传递,则默认值生效。
def fn(a,b,c=20):#c=20就是指定了默认值为20
print('a=',a)
print('b=',b)
print('c=',c)
print(fn(1,2,3)#若指定默认值后,如果用户传递了参数,则默认值没有任何作用。传入函数的参数是用户输入的参数。
a=1
b=2
c=3
- 函数形参的传递方式
(1)位置传参
就是将对应位置上的实参赋值给对应位置上的形参。
def fn(a,b,c):
print('a=',a)
print('b=',b)
print('c=',c)
print(fn(1,2,3)
a=1
b=2
c=3
(2)关键字传参根据形参名字传递
关键字传参与位置传参的区别:形参利用‘=’
def fn(b=1,c=2,a=3):
print('a=',a)
print('b=',b)
print('c=',c)
print(fn(6,5,4))#调用函数
a=4
b=6
c=5
(3)关键字传参和位置传参能否混用??
可以混用,但是关键字参数必须放在位置参数后面,否则位置报错。
def get(url,params=None,**kwargs):
#**kwargs表示可以传递很多个**关键字参数**
4.潜复制
理解潜复制需从复制 和潜去理解。
复制是指将一个序列复制过来,且修改一个序列后后不会对另外一个序列产生改变。对象-对序列的复制
潜?:也是被复制的序列中还有序列(序列嵌套),那么潜复制只会复制序列本身,序列中嵌套着的其他序列不会被复制。即嵌套序列与被复制序列存在联系,改变一个嵌套序列,另一个序列中嵌套的序列也会同时被改变。
- 注意:复制不等于赋值
d = {'a':1,'b':2,'c':3}
d2 = d.copy()#对d进行潜复制
d['a'] = 100#修改d中的元素
print(d2)
print(d)
{'a': 1, 'b': 2, 'c': 3}#潜复制后的数据与d序列独立,d的改变不会影响d2的变化
{'a': 100, 'b': 2, 'c': 3}
- 深复制
可以改变嵌套的序列
语法
import copy
copy.deepcopy()