Python_day9_字典、遍历字典、集合、函数

本文详细介绍了Python中的字典操作,包括潜复制和深复制。接着讲解了如何遍历字典,以及集合的特性、创建、操作和运算。此外,还深入探讨了函数的使用,包括函数的定义、参数、默认值和传递方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

字典

潜复制copy

  • copy()该方法对字典进行潜复制
# 非复制
d = {'a':1,'b':2,'c':3}
d2 = d
print('d = ',d)
print('d2 = ',d2)

# 复制
d = {'a':1,'b':2,'c':3}
d2 = d.copy()
print('d = ',d)
print('d2 = ',d2)
# Id不一样,改一个d,另外一个不会变化,两个独立的。

注意结论:copy只会复制字典里面的元素,字典里面还有字典(或其他列表等)是不会复制的,d = {‘a’:{‘d’:6,‘e’:7},‘b’:2,‘c’:3},其中{‘d’:6,‘e’:7}是不会复制的—>潜复制

深复制 import copy

d = {'a':{'d':6,'e':7},'b':2,'c':3}
d2 = copy.deepcopy(d)

遍历字典

‘’’

  • keys() 该方法返回字典所有的key
d = {'name':'葫芦娃','age':10,'sex':'男'}
for k in d.key():
	print(d[k])
  • values() 该方法返回衣蛾序列序列中保存有字典的值
d = {'name':'葫芦娃','age':10,'sex':'男'}
for v in d.values():
	print(v)
  • items() 该方法会返回字典中所有的项 它返回一个序列,序列中包含有双值子序列,
d = {'name':'葫芦娃','age':10,'sex':'男'}
for k,v in d.items()
	print(k,v)

集合的简介

  • 集合和列表非常的相似
    不同点:
    1、集合中只能存储不可变对象
    2、集合中存储的对象是无序的(不是按照元素的插入顺序保存的)
    3、集合中不能出现重复的元素
  • 使用{}来创建集合
s = {10,2,3,42,3,4,5,6,7}
s = {[1,2],[3,4]} #注意:集合中不能有其他列表等
print(s,type(s))
 # 结果是无序的且不重复的
  • set()函数可以将序列和字典转换为集合
s = set([1,2,3,3,4,5,6,6,7])
print(s,type(s))
# 转换为字典,无序且不重复
  • 如果使用set()将字典转换为集合的时候,只会包含字典的键 key值
  • 无序的,s[0] 无法找到元素(因为是无序的),如果要查找,可以将它转换为列表: list(s)[0]

集合的使用

  • 使用 in 和 not in来检查集合中的元素
s = {'a','b',1,2,3}
print('a' in s) #True
  • add()向集合中添加元素
    s.add(10)
  • updata()将一个集合中的元素添加到另外一个集合中
    s2 = set(‘hello’) # set??
  • pop()随机删除集合中的元素
    result = s.pop()
    print(s)
    print(result)
    s.remove()删除集合中指定的元素
    s.clear

集合的运算

& 符号交集运算

s = {1,2,3,4,5,6}
s1 = {3,4,5,6,7,8,9}
r = s & s1 #结果为交集部分数据

& 符号并集运算

  • -符号差集运算
  • ^符号亦或集运算
  • <= 检查一个集合是否是另一个集合的⼦集
  • < 检查一个集合是否是另一个集合的真⼦集
  • =检查一个集合是否是另一个集合的超集

  • 检查一个集合是否是另一个集合的真超集

函数

  • 函数也是个对象
  • 函数可以用来保存一些可执行的代码,并且可以在需要的时候,多次对这些代码调用

函数快速入门

  • 语法
    def 函数名(形参1,形参2…)
      代码块
  • 定义一个函数
def fn():
	print('这是我的第一个函数!')
print(fn)
fn()  --->定义了print('这是我的第一个函数!')这个函数  类似于:fn() = print('这是我的第一个函数!')
 # 结果<function fn at 0x00000000004E1E18>

说明:
1、fn() —>定义了print(‘这是我的第一个函数!’)这个函数 类似于:fn() =
print(‘这是我的第一个函数!’)
2、fn是函数对象 fn()调用函数
3、print是函数对象 print()调用函数

函数的参数

  • 函数的参数
  • 在定义函数的时候,可以在函数名后面的括号中定义梳理 不等的形参
  • 定义多个形参要用,隔开
  • 形参(形式参数)定义形参就是相当于在函数内部声明了变量,不是赋值
  • 实参(实际参数)如果函数定义的时候指定了形参,那么在调用的时候也必须传递实参
  • 定义一个函数 可以用来求任意两个数的和
def s():
	print(1 + 1)
s()
def fn2(a,b):
	相当于   # a = None 
			# b = None
print(a '+' b '=' a + b)
fn2(1,2)# 1,2为实参,由用户决定 结果:1 + 2 = 3

函数的传递

  • 定义形参的时候,可以为形参指定默认值
  • 指定了默认值以后,如果用户传递了参数则默认值没有任何作用
  • 如果用户没有传递,则默认值会生效
def fn(a,b,c = 20):
fn(1,2,3) #结果 1,2,3
fn(1,2) #结果 1 2 20

函数的传递方式

  • 1、位置传参
    位置传参就是讲对应位置上的实参赋值给对应位置上的形参
fn(1,2,3)
  • 2、关键字传参
    关键字传参可以不按照形参定义的顺序去传递,可以直接根据参数名去传递
    注意:位置传参和关键字传参可以混用的,但是关键字参数不能放位置参数前面。
def fn(c,a,b = 20):
    print(a,b,c)
fn(c= 2,a = 10,b = 40)
# 结果:10 40 2

def fn(c,a,b = 20):
    print(a,b,c)
fn(b = 2,a = 10,40)
# 结果:10 40 2

def fn(c = 1,a = 3,b = 20):
    print(a,b,c)
fn(c= 2,a = 10,b = 40)
# 结果:10 40 2
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值