字典的遍历
字典key值和value值的遍历:
d = {\'name\':\'a\',\'age\':1,\'sex\':\'男\'}print(d.keys())print(d.values())dict_keys([\'name\', \'age\', \'sex\'])dict_values([\'a\', 1, \'男\'])
通过key值进行获取value内容:
d = {\'name\':\'a\',\'age\':1,\'sex\':\'男\'}for k in d.keys():print(d[k])a1男
通过value值进行获取value内容
for v in d.values():print(v)
主要上面2个获取value值时,输出时的语法存在不同
同时获取key值和value内容:
for k,v in d.items():print(k)print(v)nameaage1sex男
集合
集合与列表非常相似,他们之间的不同点有:
- 集合只能存储不可变对象
- 集合中存储的对象是无序的
- 集合中存储的对象不能重复(不是按照元素的插入顺序来存储的)
集合的表现形式:集合名称 = {1,2,3,4},如果 d = {},当元素为空时,默认是字典类型
集合格式及类型的示例:
d = {1,2,3,4,5}print(d,type(d)){1, 2, 3, 4, 5} <class \'set\'>
插入数据的变化:
集合插入元素的示例:
d = {1,2,3,4,5}d.add(10)d.add(100)print(d){1, 2, 3, 4, 5, 100, 10}#插入的顺序数据,在集合中是无序的
集合中只能添加不可变的元素
set()函数创建集合
示例:
d = set([1,2,3,4])print(d,type(d)){1, 2, 3, 4} <class \'set\'>
集合是不支持索引的,因为集合中的元素本身都是无序的
如果非要查看某个索引位置的值,示例:
d = set([1,2,3,4])print(list(d)[0])
以列表的形式输出该索引位置的value值
add()添加集合元素
update(),将2个集合进行合并,后者合并到前者:a .update(b)—>将集合b合并到集合a,在合并的后请注意:
- 合并时,只把集合b在集合a中没有的元素进行合并,集合a和集合b中相同的元素是不会合并的
示例:
a = {1,2,3,4,5}b = {2,3,4,5,6,7}a.update(b)print(a){1, 2, 3, 4, 5, 6, 7}
**pop()随机删除一个元素,a.pop()
remove()指定删除一个元素,a.remove(要删除的值)
pop()与remove()的区别:
- pop()是随机删除,有返回值
- remove()是指定删除值,无返回值**
clear()清楚全部内容,a.clear()
集合的运算
& 交集运算
| 并集运算
-差集运算
^ 异或运算
<= 检查一个集合是否是另一个集合的子集
< 检查一个集合是否是另一个集合的真子集
>= 检查一个集合是否是另一个集合的超集
> 检查一个集合是否是另一个集合的真超级
a = {1,2,3}b = {1,2,3,4,5,6,7}print(a&b)print(a|b)print(b-a)print(a^b)\'\'\'对应的结果:{1, 2, 3}{1, 2, 3, 4, 5, 6, 7}{4, 5, 6, 7}{4, 5, 6, 7}\'\'\'
函数
函数也是一个对象
对象是内存中专门用来存储数据的一块区域
函数的格式:
def 函数名称(形参):
代码块
函数名称(实参)
说明:
一般情况下形参个数和实参一致,遇到带有“*”则可以不一样
参数传值方式:
一一对应传参
示例:
def fn(a,b):print(a+b)fn(1,2)\'\'\'结果是:3\'\'\'#1传值给a,2传值给b,与下面的这种方式一致\'\'\'def fn(a,b):print(a+b)a = 1b = 2fn(a,b)\'\'\'
关键字传参
利用“=”进行关键之传参,关键字传参不受一一对应限制
示例:
def fn(a,b):print(a+b)print(a)print(b)fn(a=2,b=1)
作用域
在给参数赋值时,遵守的原则(优先级):局部参数赋值>函数间的参数赋值>公共区间函数数值
示例:
def fn(a,b):a = 2b = 3print(a+b)print(a)print(b)fn(a=2,b=1)\'\'\'结果是:523\'\'\'