python集合与函数(一)

tech2022-10-12  90

字典的遍历

字典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]) a 1

通过value值进行获取value内容

for v in d.values(): print(v)

主要上面2个获取value值时,输出时的语法存在不同

同时获取key值和value内容:

for k,v in d.items(): print(k) print(v) name a age 1 sex 男

集合

集合与列表非常相似,他们之间的不同点有:

集合只能存储不可变对象集合中存储的对象是无序的集合中存储的对象不能重复(不是按照元素的插入顺序来存储的) 集合的表现形式:集合名称 = {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 = 1 b = 2 fn(a,b) '''

关键字传参

利用“=”进行关键之传参,关键字传参不受一一对应限制 示例:

def fn(a,b): print(a+b) print(a) print(b) fn(a=2,b=1)

作用域

在给参数赋值时,遵守的原则(优先级):局部参数赋值>函数间的参数赋值>公共区间函数数值 示例:

def fn(a,b): a = 2 b = 3 print(a+b) print(a) print(b) fn(a=2,b=1) ''' 结果是: 5 2 3 '''
最新回复(0)