python基础之字典遍历、函数(上)

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()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值