Python学习第四天,加油打卡

Python序列:集合,字典!和其他序列的操作以及有关序列的函数的使用,函数的传参方式以及lambda函数!

# Python--序列-对-list进行切片

my_list = [0, 1, 2, 3, 4, 5, 6]

result = my_list[1:4]

print(f"结果:{result}")

# 对tuple进行切片

my_tuple = (0, 1, 2, 3, 4, 5, 6)

result = my_tuple[::2]

print(f"结果:{result}")

# 对字符串切片

my_str = "0123456"

result = my_str[::2]

print(f"结果:{result}")

# 字符串反转

my_str = "012345678"

result = my_str[::-1]

print(f"结果:{result}")

# 对列表切片反向

my_list = [0, 1, 2, 3, 4, 5, 6]

result = my_list[3:1:-1]

print(f"结果:{result}")

# 序列[起始下标:结束下标:步长]不包含结束下标;切片是得到了一个新序列原来序列不变

 

# 切片实例

my_str = "uoy evolp i"

# num1取出love

result = my_str[::-1][3:7]

print(f"{result}")

# num2

result = my_str[4:8][::-1]

print(f"{result}")

# num3

result = my_str.split(" ")[1][::-1][1:]

 

print(f"{result}")

# 集合--set无序不重复“”‘可修改’“”

my_set = {"i", "love", "you", "my", "baby", "i", "love", "you", "my", "baby"}

# 集合可以是空

my_set_empty = set()

print(f"{my_set} {type(my_set)}") # 无序输出且不重复

print(f"{my_set_empty} {type(my_set_empty)}")

 

# 集合添加元素--add

my_set.add("best")

print(f"添加:{my_set}")

 

# 不可以添加重复元素

my_set.add("love") # 无法添加love

print(f"重复添加:{my_set}")

 

# 移除元素--remove

my_set_num1 = my_set.remove("best")

print(f"移除:{type(my_set_num1)} {my_set}") # 注意是原来的集合改变了,不要赋给新集和

 

# 随机抽取一元素--pop

elem_set = my_set.pop()

print(f"取出后:{my_set}")

print(f"取出的元素:{elem_set}")

 

# 清空集合--clear

my_set.clear()

print(f"清空后:{my_set}")

 

# 取出两个集合的差集,原来两集合不变,得到一个新集和

set1 = {1, 2, 3, 4, 5, 6, 7, 8}

set2 = {5, 4, 6, 2, 8}

set3 = set1.difference(set2) # 取得是在集合1中除了集合2中元素的其它元素

print(f"{set3}")

print(f"{set1}")

print(f"{set2}")

# 消除两个集合的差集,前面的集合改变后面的集合不变

set1 = {1, 2, 3, 4, 5}

set2 = {5, 4, 2, 1}

set1.difference_update(set2)

print(f"{set1}") # 消除了集合1中的’集合2里的元素‘

print(f"{set2}") # 集合二不变

 

# 让两个集合合并--union

set1 = {1, 2, 3, 4, 5, 6}

set2 = {6, 7, 8, 9}

set3 = set1.union(set2) # 去重合并

print(f"1:{set1}\n2:{set2}\n3:{set3}")

# 统计集合元素数量--len,去重后的集合

set1 = {1, 1, 2, 3, 4, 4}

num = len(set1)

print(f"{num}") # 4个

 

# 集合的遍历‘集合无序so不能用while循环’可以用for循环‘

set1 = {1, 2, 3, 4, 4, 5}

for elem in set1:

    print(f"集合中:{elem}")

 

# 字典

my_dict1 = {"tom": 88, "jack": 89, "lucy": 97}

# 建立空字典的两种方法

my_dict2 = {}

my_dict3 = dict()

print(f"{my_dict1}")

print(f"{my_dict2}, {type(my_dict2)}")

print(f"{my_dict3}, {type(my_dict3)}")

# 字典元素重复

# my_dict1 = {"tom": 88, "jack": 89, "lucy": 97, "tom": 87} # 直接报错

# 从字典中基于key找到value

my_dict1 = {"tom": 88, "jack": 89, "lucy": 97}

score = my_dict1["tom"]

print(f"{score}")

 

# 定义嵌套字典

stu_score_dict = {

    "tom": {

        "语文": 88,

        "math": 89,

        "english": 85

 

    },

    "jack": {

        "chinese": 85,

        "math": 96,

        "english": 78

    },

    "lucy": {

        "chinese": 89,

        "math": 98,

        "english": 99

    }

 

}

print(f"{stu_score_dict}")

score1 = stu_score_dict["tom"]["math"]

print(f"tom's math::{score1}")

# 字典的常用操作

# 新增元素--字典[Key]=Value

my_dict1 = {"tom": 88, "jack": 89, "lucy": 97}

 

my_dict1["mystical"] = 65

print(f"{my_dict1}")

 

# 字典更新相当于key一样进行覆盖value

my_dict1 = {"tom": 88, "jack": 89, "lucy": 97}

my_dict1["tom"] = 65

print(f"{my_dict1}")

# 字典删除元素--pop

my_dict1 = {"tom": 88, "jack": 89, "lucy": 97}

value = my_dict1.pop("tom")

print(f"删除的值:{value},字典中:{my_dict1}")

 

# 清空字典--clear

my_dict1 = {"tom": 88, "jack": 89, "lucy": 97}

my_dict1.clear()

print(my_dict1)

 

# 获取全部的key

my_dict1 = {"tom": 88, "jack": 89, "lucy": 97}

keys = my_dict1.keys()

print(type(keys), "全部人名:", keys)

 

# 遍历字典

for key in my_dict1: # 先遍历出key再用key进行查询value,或者使用for key in keys:有同样效果

    print(key, " :", end='')

    print(my_dict1[key])

print(my_dict1)

 

# 统计字典中元素数量--len

my_dict1 = {"tom": 88, "jack": 89, "lucy": 97}

sum1 = len(my_dict1)

print("字典中元素数目:", sum1)

# 字符串的比较一位一位的比较,出现其中一位大后面那的不再进行比较

print('abcd' > 'acaa') # False

 

# max函数使用

my_list = [1, 2, 3, 4, 5, 6]

my_tuple = (1, 2, 3, 4, 5, 6, 7)

my_str = "abcdefgh"

my_set = {1, 2, 3, 4, 5, 6}

my_dict = {"key1": 1, "key2": 2, "key3": 3, "key4": 4}

print(max(my_list))

print(max(my_str))

print(max(my_set))

print(max(my_tuple))

print(max(my_dict)) # 判断的是key一次逐个判断

# min

print(min(my_list))

print(min(my_str))

print(min(my_set))

print(min(my_tuple))

print(min(my_dict))

 

# sorted排序,排序后时列表的形式

my_list = [1, 5, 6, 7, 9, 3]

print(sorted(my_list)) # 正序排序输出

print(sorted(my_list, reverse=True)) # 逆序输出

# list(),tuple(),str(),set()转换,没有其他转换成字典

# 当字典转换成其他容器时,除了字符串类型,其他的丢失value

print(str(my_dict))

print(list(my_dict)) # 丢失value

# 字典的基本使用

work_dict = {

    "tom": {

        "部门": "科技部",

        "工资": 3000,

        "级别": 1

    },

    "jay": {

        "部门": "市场部",

        "工资": 2000,

        "级别": 2

    },

    "jack": {

        "部门": "市场部",

        "工资": 5000,

        "级别": 3

    },

    "lucy": {

        "部门": "科技部",

        "工资": 8000,

        "级别": 1

    },

    "macaw": {

        "部门": "市场部",

        "工资": 7000,

        "级别": 1

    }

}

print(work_dict)

for name in work_dict:

    if work_dict[name]["级别"] == 1:

        work_dict[name]["级别"] = 2

        work_dict[name]["工资"] += 1000

print(work_dict)

 

 

# 函数有多个返回值

def test_return():

    return 1, "love", True

 

 

x, y, z = test_return() # 注意书写形式要对应

print(x)

print(y)

print(z)

 

 

# 函数的多种传参方式

# 位置参数

def user_info(name, age, gender):

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

    user_info1('tom', 20, '男')

    # 传递的参数和定义的参数个数和顺序必须一致

 

 

# 关键字参数--函数调用时通过’键=值‘形式传递参数

 

def user_info1(name, age, gender):

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

 

 

# 关键字传入参数也可以不按照循序

user_info1(name="tom", age=20, gender="男")

# 可以和位置参数混合使用,位置参数必须在前且匹配参数循序,关键字参数不用循序

user_info1("tom", age=20, gender="男")

# 缺省参数

def user_info1(name, age, gender="男"): # 默认值,没有传入参数时起作用

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

 

 

user_info1(name="tom", age=20)

user_info1(name="tom", age=20, gender="女")

 

 

# 不定长参数--位置不定长

def user_info1(*args):

    print(f"{type(args)} 内容:{args}") # 元组形式储存

 

 

user_info1(1, 2, 3, "tom", True)

 

 

# 关键字不定长

def user_info1(**kwargs):

    print(f"{type(kwargs)}, 内容:{kwargs}")

 

 

user_info1(name="tom", age=20, gender="男") # 要以键值的形式储存最终是以字典形式呈现

 

 

# 函数作为参数传入--传入的是计算逻辑而不是数据

 

def func_func(func_in1):

    result1 = func_in1(8, int(input("输入第二个数:")))

    print(f"形式:{type(func_in1)}, {result1}")

 

 

def func_in(a, b):

    return a + b

 

 

func_func(func_in) # 内部的函数做为参数传入外函数,传入的是计算逻辑

 

 

# lambda匿名函数

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

def test_func(compute):

    result2 = compute(1, 9)

    print(f"{result2}")

 

 

test_func(lambda x1, y1: x1 + y1) # 函数只能使用用一次且只能写一行代码

学习贵在坚持!一起加油!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值