Python基础重点复习(2)

关于哈希​​

可哈希:不可变的数据类型(int str tuple bool)
不可哈希:可变的数据类型(list dict set)

列表的增删改查

# 向列表中添加内容
lst = []
lst.append("动漫")  # 追加内容
lst.append("二次元")

lst.insert(0, "我")  # 指定位置插入

lst.extend(['海贼王', '春物', 'EVA'])  # 合并列表,批量添加
print(lst)  # ['我', '动漫', '二次元', '海贼王', '春物', 'EVA']

print("---------------------------------------------")

# 删除
# 列表元素:['我', '动漫', '二次元', '海贼王', '春物', 'EVA']
ret = lst.pop(3)  # 指定索引删除,返回被删除的元素
print(ret)
print(lst)  # ['我', '动漫', '二次元', '春物', 'EVA']

lst.remove('春物')  # 删除指定元素
print(lst)  # ['我', '动漫', '二次元', 'EVA']

print("---------------------------------------------")

#修改
#列表元素:['我', '动漫', '二次元', 'EVA']
lst[3] = "AA"
print(lst)  # ['我', '动漫', '二次元', 'AA']



lst = ['张三' ,'小五', "张四", '小王']
# 把姓张的都改成王的
for i in range(len(lst)):
    item = lst[i]
    if item.startswith('张'):
        new = '王' + item[1:]
        print(new)
        lst[i] = new

print("---------------------------------------------")

#排序
lst = [2, 44, 5, 57, 1, 9]
lst.sort()  # 升序排序
print(lst)
lst.sort(reverse=True)  # 倒叙排序
print(lst)

#嵌套
lst = ["aa", "bb", ["1", "2", "3", ["EVA", 2]], "cc"]
print(lst[2][3][0])  # EVA

print("--------------------------------------------")

#列表循环删除
lst = ["路飞", "路奇", "索隆", "山治", "香克斯", "凯多"]

temp = []  # 临时列表
for i in lst:
    if i.startswith("路"):
        temp.append(i)  # 把要删除的内容记录下来

for i in temp:
    lst.remove(i)  # 去原列表删除

print(lst)  # ["索隆", "山治", "香克斯", "凯多"]
#最稳妥的循环删除方式: 将要删除的内容存在一个新的列表中;循环新列表,删除老列表

元组

t = ("路飞", "香克斯", "黑胡子")

print(t)
print(t[1:])
#t[0] = "尼卡"  # 元组不可变
print(t)

print("-----------------------------------")

t = ("路飞")  # 这样定义只是单纯的一个字符串
print(type(t))
print(t)
t = ("路飞",)  # 定义只有一个元素的元组要在末尾加,
print(type(t))
print(t)

print("-----------------------------------")

t = (1, 2, 3, ["路飞", "香克斯", "黑胡子"])
t[3].append("五老星")  # 元组的不可变指的是内存地址不能变,但可变元素内的内容可以变   不推荐这么做
t[3][0] = "尼卡"
# t[3] = [1, 2, 3]  # 像这种改变地址的行为就会报错
print(t)

字典

dic = {"明日香":"002", "真嗣":"001", "凌波丽":"000"}
# 字典的key必须是可哈希的数据类型(不可变)

dic1 = {"海贼王":["路飞", "索隆", "山治"]}
# 字典的value可以是任何数据类型

val = dic["明日香"]  # 用键当索引
print(val)

print("--------------------------------------------------")

#新增,修改
dic = dict()  # 创建一个空字典
dic['路飞'] = '船长'
dic[1] = 2
print(dic)

dic['路飞'] = '海贼王'  # 相同的key,执行的是修改操作
print(dic)

dic.setdefault('罗杰', '海贼王')  # 设置默认值,如果已经有了该key,setdefault不起作用,与上方有差别
dic.setdefault('路飞', '橡胶')  # 此时这个就不起作用
print(dic)

#删除
dic.pop('罗杰')  # 根据key删除
print(dic)

#查询
print(dic['路飞'])  # 若key不存在,程序报错
print(dic.get('路飞'))  # 若key不存在,返回none

print("--------------------------------------------------")

#循环
dic = {
    "小明":"数学很厉害",
    "小周":"打游戏很厉害",
    "小红":"天天唱歌",
    "小张":"已经走上人生巅峰"
}

for i in dic:  # 直接循环字典,默认拿到的是key
    print(i, dic[i])

print(list(dic.keys()))  # 拿到所有key放入列表
print(list(dic.values()))  # 拿到所有value放入列表
print(list(dic.items()))  # 直接拿到键值对放入列表

print("==================")

for key, value in dic.items():  # 遍历字典中的键值对
    print(key, value)

#上面遍历的原理:a,b = 1,2————a,b = (key,value)————a,b = items

print("--------------------------------------------------")

#嵌套
luffy = {
    "name":"路飞",
    "age": 23,
    "brother":{
        "name":"艾斯",
        "skill":"火拳"
    },
    "friend":{
        "name":"索隆",
        "hear":"绿色"
    }
}

name = luffy['brother']['name']
print(name)

print("--------------------------------------------------")

#关于字典的循环删除
#不管是列表还是字典,循环删除需要准备一个新列表

dic = {
    "李明":"数学很厉害",
    "李红":"天天唱歌",
    "小周":"打游戏很厉害",
    "小张":"已经走上人生巅峰"
}

temp = []
for i in dic:
    if i.startswith('李'):
        temp.append(i)

for j in temp:
    dic.pop(j)

print(dic)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值