Python 数据容器总结(列表 元组 字符串 集合 字典)

本文详细介绍了Python中的数据容器,包括列表、元组、字符串、集合和字典的基本概念、操作方法以及它们之间的区别。通过实例展示了如何创建、修改和处理这些数据结构,适合刚接触Python的新手参考。

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

空闲时间的时候学了Python ,刚学完了数据容器 本人觉得类型有点复杂 种类太多 而且会和后面的pycharts包有联系 所以写了一篇文章 帮助和我一样 刚刚学习Python的新手们(有错误的话 请见谅 可以私聊我,谢谢)

之后又写了一篇补充如何从复杂字典取出列表的博客 名字叫 pyecharts 的基础使用(Line Map Bar
大家可以看看

目录

列表

元组

字符串

集合

字典

在了解数据容器之前 我们需要明白 Python 在不同的数据容器之间 使用了不同的括号包括

列表的:  [ ]

元组的:( )

字符串的: " "

集合的: { }

字典的:{"key": "value" }

所以弄清这些括号才是关键

列表:

说到列表 如果有一定的C语言基础 就会觉得和数组有一定的相似性

比如 : 可以利用下标查找元素 或者 对目标元素进行更改

首先 创建一个空列表

my_list = []

 在知道创建空列表之后 就要往里面加入元素 而元素的类型包括 数字 、字符串、 列表、 元组、字典等(基本上都可以加入) 因为加入元素的方法都一样 所以接下来就用字符串(使用范围大)

1.列表的追加

语法:

my_list.append('a')
print(my_list) 
结果输出是 ‘a’

 每次只能对一个元素进行追加 如果写成:

my_list.append('b', 'c', 'd', 'e')

就会报错 

下面就是追加 列表  的一个例子

my_list = [['a'], ['b']]
my_list1 = []
my_list1.append(my_list) 
print(my_list1) # [[['a'], ['b']]]
 2.列表的插入

为了更好的展示 我们对my_list默然一个初始值

my_list = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']

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

my_list.insert(下标,元素)

 (注意 列表的下标从零开始哦 也就是 元素‘a’的下标是 0 )

my_list = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']
my_list.insert(1,'z')
print(my_list)# ['a', 'z', 'b', 'c', 'd', 'e', 'f', 'g', 'h']

3.列表的查找下标

语法:

index = my_list.index(元素)

 如果我们要查找元素 z 可以这样操作

my_list = ['a', 'z', 'c', 'd', 'e', 'f', 'g', 'h']
index = my_list.index('z')
print(index)# 1
 4.列表的修改

元素的修改可以配合查找下标进行 如果要对 ‘z’ 进行修改 根据 ‘z’ 的下标 

my_list = ['a', 'z', 'c', 'd', 'e', 'f', 'g', 'h']
index = my_list.index('z')
my_list[index] = 'y'
print(my_list)# ['a', 'y', 'c', 'd', 'e', 'f', 'g', 'h']
 5. 列表的删除

有三个方法

(1) 直接删除
my_list = ['a', 'z', 'c', 'd', 'e', 'f', 'g', 'h']
del  my_list[1]
print(my_list) # ['a', 'c', 'd', 'e', 'f', 'g', 'h']
 (2)pop 删除指定元素并返回
my_list = ['a', 'z', 'c', 'd', 'e', 'f', 'g', 'h']
element = my_list.pop(2)
print(element) # c
print(my_list) # ['a', 'z', 'd', 'e', 'f', 'g', 'h']

 方法pop 里面放的是 删除元素的 下标

(3)remove 删除第一个与之匹配的元素

假设一个数字列表my_list

my_list = [1, 2, 3, 3, 4, 2, 2, 3, 4, 5]
my_list.remove(2)
print(my_list) # [1, 3, 3, 4, 2, 2, 3, 4, 5]

有一点要注意 pop里面是元素的下标 而 remove里面的是指定元素

6.列表的基本功能
(1)统计某个元素的个数
my_list = [1, 2, 3, 3, 4, 2, 2, 3, 4, 5]
count = my_list.count(2)
print(count) # 3
(2)统计列表中所有元素个数
my_list = [1, 2, 3, 3, 4, 2, 2, 3, 4, 5]
count = len(my_list)
print(count) # 10
(3)列表的遍历

一般咱们都用for循环 

my_list = [1, 2, 3, 3, 4, 2, 2, 3, 4, 5]
for i in my_list:
    print(i)  # 1 2 3 3 4 2 2 3 4 5

OK啦 咱们列表就差不多了

元组:

元组是有序不可更改的集合

1.有序

有序 代表着可以用下表进行查找之类的

(1)查找下标
my_tuple = ('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h')
index = my_tuple.index('a')
print(index) # 0
(2)循环遍历
for i in my_tuple:
    print(i)  # a b c d e f g h)

基本上元组的功能和列表差不多 但是 不能更改

2.不可更改

说到不可更改   像删除 追加 之类的都不可以用

但是可以将元组变成列表 再变成元组 如下:

my_tuple = ('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h')
my_list = list(my_tuple)
print(type(my_list))
print(my_list)
# type() 输出变量的类型
my_list.append('i')
my_tuple = tuple(my_list)
print(type(my_tuple))
print(my_tuple )

 元组 my_tuple 通过list 转化为 列表类型 的数据容器

再通过列表的修改方法 进行修改 

再通过tuple转化为元组类型的数据容器 

字符串:

字符串的修改 和 列表差不多哦 但是还是举个例子吧

1.查找下标
my_str = "为中华之崛起而读书"
index = my_str.index("中")
print(index)
2.字符串的替换
my_str = "为中华之崛起而读书"
my_str.replace("中华","中华民族")
print(my_str ) # 为中华民族之崛起而读书
3.字符串的拼接
str1 = "hello"
str2 = "world"
str3 = str1 + str2
print(str3)
4.字符串的分割(本人觉得挺重要的)

字符串再被分割后 就会变成 列表 hhhh

以下就是 具体操作

my_str = "h, e, l, l, o, w, o, r, l, d"
my_list = my_str.split(",")
print(type(my_list))
print(my_list)

 好 我来解释一下 这个split到底是什么作用

my_str = "h, e, l, l, o, w, o, r, l, d"
my_list = my_str.split(",")

 将字符串里面的  “ ,”  隔开  然后 组成一个以字符为元素的列表

结果就是:

my_str = "h, e, l, l, o, w, o, r, l, d"
my_list = my_str.split(",")
print(type(my_list)) # <class 'list'>
print(my_list) # ['h', 'e', 'l', 'l', 'o', 'w', 'o', 'r', 'l', 'd']
 5.字符串计数

就是某个特定的字符的个数

my_str = "hello, world, hello"
count = my_str.count("hello")
print(count) # 2

集合:

其实和列表操作差不多的 就是不能重复元素 和 查找下标 

集合的括号和字典的一样 都是{} 但是有点细节不一样  (注意集合里面的元素不能重复)

1.创建集合
my_set = set()

嗯? 最奇怪的是创建集合 是这个() 记住就好

2.集合的添加
my_set = {"hello", "world", "Python", "java"}
my_set.add("C")
print(my_set) # {'hello', 'world', 'Python', 'java', 'C'}
3.集合的删除
my_set = {"hello", "world", "Python", "java"}
my_set.remove("hello")
print(my_set) # {'world', 'Python', 'java'}
4.取出集合1有的 而集合2 没有的
set1 = {1, 2, 3, 4, 5}
set2 = {2, 3, 4, 5, 6}
set3 = set1.difference(set2)
print(set3)# {1, 5}
5.合并集合
set6 = {1, 2, 3, 4, 5}
set7 = {2, 3, 4, 6, 7}
set8 = set6.union(set7 )
print(set8) # {1, 2, 3, 4, 5, 6, 7}

OK

字典:

本人是学完C语言 在来学Python的 当我一看到字典 就发现 怎么和 结构体的用法差不多的

然后又学了pycharts 就发现 字典 还是很难的 因为 它里面嵌套了列表 元组什么的

而且函数传参 不知道是以列表 还是 元组 还是 字典 还是 字典里面套列表 还是 字典里面套元组?

先不说这个 下一篇再讨论

说到字典 先给出一个代码 

my_dict = {"key":"value"}
my_dict = {"小明":85, "小红":90, "小黑":80}

这个key 和 value 是什么嘞

以下一行代码为例子

考试成绩 小明 小红 小黑 就是key  , 85 90 80 就是value 

如果听不懂的话 可以去B站找点视频看看

 以上是最简单的字典 接下来给大家上点难的( 但是 value也可以是字典 hhhh)

my_dict = {
    "小明":{
        "语文":90,
        "数学":78,
        "英语":87
    },
    "小红":{
        "语文":70,
        "数学":88,
        "英语":97
    },
    "小黑":{
        "语文":98,
        "数学":89,
        "英语":89
    }
}

大家知道什么是key 什么是value吗

"小明" 是key  各科成绩是value 但是value是一个dict 里面又有语文 数学 英语这些key 而分数就是value
1.定义空字典
my_dict = {}

这就是为什么集合写成 my_set = set()的原因 因为 字典要用 

2.添加新元素
my_dict = {"小明":85, "小红":90, "小黑":80}
my_dict["小天"] = 98
print(my_dict) #{'小明': 85, '小红': 90, '小黑': 80, '小天': 98}
3.元素的删除
my_dict = {"小明":85, "小红":90, "小黑":80}
score = my_dict.pop("小明")
print(score) # 85
print(my_dict) #{'小红': 90, '小黑': 80}

和列表差不多

 你们肯定能理解 我就不说了

4.获取全部key
(1)法一

先这样

my_dict = {"小明":85, "小红":90, "小黑":80}
keys = my_dict.keys()
print(keys) # dict_keys(['小明', '小红', '小黑'])

 然后这样

for key in keys:
    print(key)# 小明 小红 小黑
(2)法二

这个方法就比较简单 灰常推荐

my_dict = {"小明":85, "小红":90, "小黑":80}
for key in my_dict :
    print(key)

这样就搞定了

5.统计字典的长度
my_dict = {
    "小明":{
        "语文":90,
        "数学":78,
        "英语":87
    },
    "小红":{
        "语文":70,
        "数学":88,
        "英语":97
    },
    "小黑":{
        "语文":98,
        "数学":89,
        "英语":89
    }
}

print(len(my_dict)) # 3

其实统计的就是key

切片

因为切片适用于所以数据容器

所以就放到了最后 顺便总结一下

所用数据容器切片都差不多

# 序列的常规操作
# 切片: 从一个序列中 取出一个子序列
# 语法 序列[起始下标:结束下标:步长]

# 完成切片以后 会得到一个新序列
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
mynewlist = my_list[2:6]
print(mynewlist) # [3, 4, 5, 6]

mynewlist1 = my_list[5:0:-1]
mynewlist1 = my_list[5::-1]
print(mynewlist1) #  [10, 9, 8, 7, 6, 5]
# 步长为负数 反向取(注意 起始下标 和 结束下标 也要反过来)
# 结束下标不包含  起始下标包含
# 作用:
# 可以反转字符
# 可以去特定的元素

OK 咱们的数据容器总结就到这里了 感谢大家可以看到这 算是对我的一种鼓励 蟹蟹

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值