【Python】常见容器

列表

定义方法:[元素1, 元素2, …]
列表一次可以存储多个不同数据类型的数据,支持嵌套。

例如:

list1 = ["张三", 33, True]
print(list1)
print(type(list1))

list2 = [list, "李四", 11]
print(list2)
print(type(list2))

运行结果:
在这里插入图片描述

访问列表中的值:

list3 = ["张三", "李四", "王五", "赵六", "周七", "孙八"]
print(list3[0])  # 输出列表第一个---张三
print(list3[-6])  # 输出列表倒数第六个---张三
print(list3[-1])  # 输出列表倒数第一个---孙八

运行结果:

若有多个列表嵌套:

list4 = [[1, 2, 3, 4], [10, 11, 12], [17, 18, 19]]
print(list4[1][2])
print(list4[-1][-1])

在这里插入图片描述
查找元素在列表的下标:
有则输出下标,没有则报错。

list3 = ["张三", "李四", "王五", "赵六", "周七", "孙八"]
print(list3.index("王五"))
print(list3.index("孙行者"))

运行结果:
在这里插入图片描述

也可以以截取的方式读取列表:

list = ["张三", "李四", "王五", "赵六", "周七", "孙八"]
# 读取 0-3,不包括4
print("list[0:4]: ",list[0:4])
# 读取 1到倒数-3,不包括倒数第二
print("list[1:-2]: ",list[1:-2])

运行结果:
在这里插入图片描述

修改特定下标的值:

# 修改list3列表中下标为2的值为 孙行者
list3[2] = "孙行者"

插入元素:

语法:列表.insert(下标,元素),在指定的下标位置,插入指定的元素

# 在list3列表中下标为2的位置插入一个 "111"
list3.insert(2,"111")

在尾部添加单个或多个元素:
添加一个:append
添加多个:extend

list3 = ["张三", "李四", "王五", "赵六", "周七", "孙八"]
list3.append("九九")
print(list3)
list4=[666,777,888]
list3.extend(list4)
print(list3)

运行结果:
在这里插入图片描述

删除指定下标的元素:
del:直接删除
pop:删除并返回要删除的值
在这里插入图片描述
删除指定元素:
若有多个王五,则只删除第一个王五

list.remove("王五")

清空列表:

list.clear()

统计某元素在列表中的个数:

list.count("王五")

统计列表元素个数:
len(列表名)

num = len(list)

遍历列表:

list = ["张三", "李四", "王五"]
for s in list:
    print(s)

还有种玩法:

# [表达式 for 变量 in 列表 if 条件]
# 遍历 list ,如果是2的倍数,那就×2
list = [1, 2, 3, 4, 5, 6]
print([x * 2 for x in list if x % 2 == 0])
# 运行结果为:[4, 8, 12]

元组

列表中的元素是可以修改的,如果不想被修改,我们可以使用元组。元组里的类型也可以是不一样的,同样支持嵌套,支持下标访问,使用()定义:

t1=("zhangsan","lisi",123)
print(type(t1))
print(t1)

运行结果:
在这里插入图片描述

注意:当元组中只有一个元素时,需要在后面加上逗号,否则就不会被当成元组:

在这里插入图片描述
元组中的元素不可修改,但是可以进行拼接成一个新的元组;

t1=("zhangsan","lisi")
t2=("zhangsan",)
t3 = t1 + t2

字符串

用双引号或单引号:

str = "zhangsan"
print(str[0])  # 输出下标为 0的字符
print(str[-1])  # 输出下标倒数第一
print(str[1:])  # 从下标 1 开始输出,直到最后
print(str.index('san'))  # 输出 san 的起始位置

在这里插入图片描述

字符串替换 并不是修改字符串,而是生成一个新的字符串:

str = "zhangsan"
# 将 str 中的字符串 a,替换成 *
# 输出 zh*ngs*n
print(str.replace("a","*"))

字符串分隔:

str="张三 李四 王五 赵六 周七"
# 使用空格分隔,若要使用逗号或其他字符分隔,则在 split 中填入相应的即可。
list1=str.split(" ")
print(list1)

去除首尾空格和指定内容:
在这里插入图片描述

逆置:

str="123456"
list1=[1,2,3,4,5]
t1=("zhangsan","lisi","wangwu")
print(str[::-1])
print(list1[::-1])
print(t1[::-1])

运行结果:
在这里插入图片描述

集合

集合是一个无序不重复(无序,所以不支持下标访问)的序列,使用大括号{}创建集合,用逗号分隔:

set1 = {1, 2, 3, 1, 5, 4, 2, 3}
print(set1)

运行结果:
在这里插入图片描述

添加、删除等操作

set1 = {"张三", "李四", "王五", "赵六", "周七", "孙八"}
# 添加元素
set1.add("老大")
print(set1)
# 删除指定元素
set1.remove("老大")
print(set1)
# 随机取出元素,取出后原集合就不存在这个元素了
print(set1.pop())
print(set1)

运行结果:
在这里插入图片描述

差集

set1 = {1, 2, 3, 4, 5}
set2 = {3, 4, 5, 6, 7}
# 取差集,存在set1中,但不存在set2中,set1不会变
print(set1.difference(set2))
print(f"set1结果:{set1}")
# 同样是差集,但是会把结果重新赋给set1
set1.difference_update(set2)
print(f"set1结果:{set1}")

运行结果:

在这里插入图片描述

合并集合

# 合并两个集合,并去除重复元素
print(set1.union(set2))

字典

用键值对表示,键和值之间用冒号分隔,键值对之间用逗号分隔,key 不允许重复,如果重复,后面的则会覆盖前面的,格式如下:

d = {key1 : value1, key2 : value2, key3 : value3 }
d1 = {"name": "zhangsan", "age": 18}

字典也可以嵌套:

d1 = {
    "张三":{
        "语文":77,
        "数学":88,
        "英语":68
    },
    "李四": {
        "语文": 86,
        "数学": 94,
        "英语": 78
    },
    "王五": {
        "语文": 87,
        "数学": 92,
        "英语": 58
    }
}

可通过如下方式访问:

print(f"学生信息: {d1}")
d2 = d1["张三"]
print(f"张三成绩: {d2}")
math_score = d1["张三"]["数学"]
print(f"张三数学成绩:{math_score}")

在这里插入图片描述

字典常见操作:

dict1 = {"张三": 23, "李四": 31, "王五": 44}
# 添加或更新键值对,原字典中没有则添加,有则更新
dict1["赵六"] = 33
print(dict1)
# 删除
dict1.pop("张三")
print(dict1)
# 获取全部的 key
print(dict1.keys())
# 获取字典长度
print(len(dict1))
# 清空字典
dict1.clear()
print(dict1)

运行解果:
在这里插入图片描述

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值