Python学习笔记——Day6

学习参考视频:第一阶段-第六章-12-集合的定义和操作_哔哩哔哩_bilibili

Day4学习进度:第六章12-19 第七章

知识点总结:

列表、元组、字符串都支持重复元素且有序,具有一定的局限性

集合

不支持元素的重复(自带去重功能)、并且内容无序

# 定义集合字面量
{元素, 元素, 元素, ……, 元素}

# 定义集合变量
变量名称 = {元素, 元素, 元素, ……, 元素}

# 定义空集合
变量名称 = set()
myset = {1,2,3,4,3,5,6,3,7,11,123,100}
myset_empty = set()
print(myset)

集合无序:不支持下标索引访问

集合允许修改:

添加元素:集合.add(元素)

移除元素:集合.remove(元素)

随机取元素:集合.pop()

清空集合:集合.clear()

取差集:取出集合1和集合2的差集(集合1有而集合2没有的),得到一个新集合,集合1和集合2不变。语法:集合1.differenc(集合2)

消除差集:在集合1中删除和集合2相同的元素,集合1被修改,集合2不变。语法:集合1.difference_update(集合2)

合并集合:集合1和集合2合并成新集合。语法:集合1.union(集合2)

统计元素数量:len()

集合的遍历:不支持下标索引,不能用while循环,可以用for。

# 定义集合
myset = {"你好", "世界", "Python", "你好", "超能洗衣液", "Python"}
print(myset)

# 添加新元素
myset.add("c++")
myset.add("Python")
print(myset)

# 移除元素
myset.remove("c++")
print(myset)

# 随机取元素
element = myset.pop()
print(element)
print(myset)

# 清空集合
myset.clear()
print(myset)

# 差集
set1 = {1,2,3}
set2 = {1,5,6}
set3 = set1.difference(set2)
print(set3)

# 消除差集
set1.difference_update(set2)
print(set1)
print(set2)

# 合并集合
set1 = {1,2,3,4}
set2 = {1,5,6,4}
set3 = set1.union(set2)
print(set3)

# 遍历集合
set1 = {1,4,5,2,3}
for element in set1:
    print(element)

字典

定义:可以通过关键字key找到其值value,字典的key不能重复

# 定义字典字面量
# {key:value, key:value, ……, key:value}

# 定义字典变量
# mydick = {key:value, key:value, ……, key:value}
mydick1 = {"王力宏":80, "周杰伦":100, "小黑子":50}

# 定义空字典
mydick2 = {}
mydick3 = dick()

字典的key和value可以是任意类型,但key不能为字典,由此可知字典可以嵌套。

# 字典嵌套
dick1 = {
    "王力宏":{
        "语文":100, "数学":99, "英语":98
    },
    "周杰伦":{
         "语文":90, "数学":89, "英语":88
    }
}
print(dick1)
score = dick1["周杰伦"]["语文"]
print(score)

字典的操作

新增/更新元素:字典[key]=value

元素的删除:字典.pop(key)。获取指定key的值并将其从字典中删除。

清空元素:字典.clear()。

获取全部key:字典.key()。获取字典中全部的key

遍历字典1:通过for循环取key可以遍历字典

遍历字典2:直接对字典进行for循环

统计元素数量:len()

mydick = {"周杰伦":99}

# 新增元素
mydick["王力宏"] = 88
print(mydick)

# 更新元素
mydick["王力宏"] = 98
print(mydick)

# 删除元素
inf = mydick.pop("王力宏")
print(inf)
print(mydick)

# 清空元素
mydick.clear()
print(mydick)

# 获取全部key
mydick = {"周杰伦":99, "林俊杰":55, "蔡依林":88}
keys = mydick.keys()
print(keys)

# 遍历字典1
for key in keys:
    print(mydick[key])

# 遍历字典2
for key in mydick:
    print(mydick[key])

数据容器总结

分类:

是否支持下标索引

        支持:列表、元组、字符串——序列类型

        不支持:集合、字典——非序列类型

是否支持重复元素

        支持:列表、元组、字符串——序列类型

        不支持:集合、字典——非序列类型

是否可以修改

        支持:列表、集合、字典

        不支持:元组、字符串

 

数据容器的通用操作

遍历for、统计元素个数len、统计最大元素max、统计最小元素min

数据容器的类型转换-不能转成字典

通用排序:sorted(容器, [reverse = True]),排序结果会赋给一个列表

第七章

函数的多个返回值

def test_return():
    return 1,"HELLO",True
x,y = test_return()
print(x)
print(y)

函数的多种传参方式

位置参数、关键字参数、缺省参数、不定长参数

位置传参:根据参数的前后顺序进行传参

关键字参数:

def user_info(name, age, gender):
    print(f"您的名字是:{name},年龄是{age},性别是{gender}")

# 关键字传参
user_info(name = "小明", age = 15, gender = "男")

# 可以不按顺序传参
user_info(age = 15, name = "小明", gender = "男")

# 可以和位置参数混用,但位置参数必须在前且匹配参数顺序
user_info("小明", age = 15, gender = "男")

缺省参数:传递参数时可以赋一个默认值

def user_info(name, age, gender = "男"):
    print(f"您的名字是:{name},年龄是{age},性别是{gender}")

# 默认参数
user_info(name = "小明", age = 15)

# 可更改
user_info(age = 15, name = "小明", gender = "女")

不定长参数:可变参数,用于不确定调用的时候会传递多少个参数(也可以不传参)的场景

类型:位置传递、关键字传递

# 位置传递不定长
def user_info(*args):
    print(args)

user_info("Tom")

user_info("Tom",18,"男")

# 关键字传递不定长
def user1_info(**kwargs):
    print(kwargs)

user1_info(name = "Tom", age = 15, gender = "男")

位置传递:所有参数会被args变量手机,根据传进参数位置合并为一个元组,args为元组类型

关键字传递:参数是“键=值”形式的情况下,所有得键值对会被kwargs接受,同时根据键值对组成字典

匿名函数

函数作为参数传递:将函数作为参数传入另外一个函数中进行使用,本质上是一种计算逻辑的传递,而非数据的传递

def test_info(compute):
    result = compute(1,3)
    print(result)

def compute(x,y):
    return x+y

test_info(compute)

lambda匿名函数:只可临时用一次

lambda 传入参数: 函数体(一行代码)

  • lambda是关键字,表示定义匿名函数
  • 传入参数表示匿名函数的形式参数
  • lambda函数体只能写一行,无法写多行代码
def test_info(compute):
    result = compute(1,3)
    print(result)

test_info(lambda x,y:x+y)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值