跳到主要内容
Python 中的 5 种数据容器:列表、元组、字符串、集合和字典 | 极客日志
Python 算法
Python 中的 5 种数据容器:列表、元组、字符串、集合和字典 Python 中的五种核心数据容器:列表、元组、字符串、集合和字典。内容包括各容器的定义方式、基本特性(如有序性、可变性、是否支持重复元素)、常用操作方法(增删改查、遍历、切片)以及类型转换与排序等通用功能。通过对比分析,帮助读者理解不同数据结构的适用场景及差异。
女王 发布于 2026/3/28 更新于 2026/6/3 31 浏览1 数据容器入门
一个小问题,怎么在程序中记录 5 个学生的名字?
方法一:定义 5 个 name 变量。
方法二:使用一个容器存储。
这样一看优势显而易见。自己定义 5 个变量,非常低效,而使用容器只需要定义一个变量,非常优雅。
Python 中的数据容器
一种可以容纳多份数据的数据类型,容纳的每一份数据称之为 1 个元素。每一个元素,可以是任意类型的数据,如字符串、数字、布尔等。
数据容器根据特点的不同,如:
分为 5 类,分别是:列表(list)、元组(tuple)、字符串(str)、集合(set)、字典(dict)
2 列表
2.1 列表定义
列表可以一次存储多个数据,且可以为不同的数据类型,而且支持嵌套。
思考:有一个人的姓名 (TOM) 怎么在程序中存储?
字符串变量
思考:如果一个班级 100 位学生,每个人的姓名都要存储,应该如何书写程序?声明 100 个变量吗?
No,我们使用列表就可以了,列表一次可以存储多个数据。
列表(list)类型,是数据容器的一类,我们来详细学习它。
列表定义的三种方式
字面量
[元素 1 , 元素 2 , 元素 3 , 元素 4 , ...]
定义变量
变量名称 = [元素 1 , 元素 2 , 元素 3 , 元素 4 , ...]
定义空列表
代码样例
[1 ,2 ,3 ,4 ,5 ]
lst = [1 ,2 ,3 ,4 ,5 ]
print (lst)
lst2 = ["a" , "b" , "c" ]
print (lst2)
lst3 = [ , , , , , ]
(lst3)
lst4 = [[ , , ],[ , , ]]
( (lst4))
"a"
"b"
"c"
1
2
"haha"
print
1
2
3
"aa"
"bb"
"cc"
print
type
2.2 列表下标索引 列表中的元素都有自己的序号,是递增的,我们称之为下标索引。
我们只需要按照下标索引,即可取得对应位置的元素。从零开始计数。可以分为正向和反向两种获取方式。同时列表可以嵌套。
name_list = ['Tom' , 'Lily' , 'Rose' ]
print (name_list[0 ])
print (name_list[1 ])
print (name_list[2 ])
lst = [1 ,2 ,3 ,4 ,5 ,6 ,7 ,8 ,9 ,10 ,11 ,12 ,13 ,14 ,15 ,16 ,17 ,18 ,19 ,20 ,21 ,22 ,23 ,24 ]
print (lst[-1 ])
print (lst[-2 ])
print (lst[-3 ])
lst =[[1 ,2 ,3 ],[4 ,5 ,6 ],[7 ,8 ]]
print (lst[1 ][1 ])
print (lst[0 ][-1 ])
2.3 列表常用方法 在 Python 中,如果函数 class 的成员,那么函数会称之为方法。
方法和函数功能一样有传入参数,有返回值,只有方法的格式不同。
查找指定元素在列表的下标,如果找不到,报错 ValueError。
index 就是列表对象(变量)内置的方法(函数)
my_list = ["example" , "demo" , "python" ]
print (my_list.index("demo" ))
lst = ['demo' , 'example' , 'python' , '666' ]
print (lst.index("666" ))
print ("666" in lst)
可以使用如下语法,直接对指定下标(正向、反向下标均可)的值进行重新赋值(修改)
my_list = [1 , 2 , 3 ]
my_list[0 ] = 5
print (my_list)
my_list = [1 , 2 , 3 ]
my_list[-3 ] = 5
print (my_list)
语法:列表.insert(下标,元素),在指定的下标位置,插入插入指定的元素
my_list = [1 , 2 , 3 ]
my_list.insert(1 , "item" )
print (my_list)
当下标值超过列表的索引范围,相当于在尾部新增一个元素
lst.insert(10 , '666' )
print (lst)
列表.append(元素),将指定元素追加到列表的尾部
my_list = [1 , 2 , 3 ]
my_list.append(4 )
print (my_list)
my_list = [1 , 2 , 3 ]
my_list.append([4 , 5 , 6 ])
print (my_list)
列表.extend(其它数据容器),将其它数据容器的内容取出,依次追加到列表尾部
my_list = [1 , 2 , 3 ]
my_list.extend([4 , 5 , 6 ])
print (my_list)
my_list = [1 , 2 , 3 ]
del my_list[0 ]
print (my_list)
my_list.pop(0 )
print (my_list)
lst = [1 , 2 , 3 ]
lst.append(4 )
lst.append(5 )
lst.append(6 )
print (lst)
lst = [1 , 2 , 3 ]
lst.extend([4 , 5 , 6 ])
print (lst)
my_list = [1 , 2 , 3 , 2 , 3 ]
my_list.remove(2 )
print (my_list)
lst = [1 , 2 , 3 , 4 , 5 , 6 ]
del lst[0 ]
print (lst)
deleted_data = lst.pop(2 )
print ("被删除的是:" , deleted_data)
print (lst)
lst = ["demo" , "example" , "example" , "python" , "666" ]
lst.remove("example" )
print (lst)
lst.remove("xxx" )
print (lst)
my_list = [1 , 2 , 3 ]
my_list.clear()
print (my_list)
lst = [1 , 2 , 3 , 4 , 5 , 6 ]
lst.clear()
print (lst)
lst = [1 , 2 , 3 , 4 , 5 , 6 ]
lst = []
print (lst)
my_list = [1 , 1 , 1 , 2 , 3 ]
print (my_list.count(1 ))
可以容纳多个元素(上限为 2**63-1、9223372036854775807 个)
可以容纳不同类型的元素(混装)
数据是有序存储的(有下标序号)
允许重复数据存在
可以修改(增加或删除元素等)
编号 使用方式 作用 1 列表.append (元素) 向列表中追加一个元素 2 列表.extend (容器) 将数据容器的内容依次取出,追加到列表尾部 3 列表.insert (下标,元素) 在指定下标处,插入指定的元素 4 del 列表 [下标] 删除列表指定下标元素 5 列表.pop (下标) 删除列表指定下标元素 6 列表.remove (元素) 从前向后,删除此元素第一个匹配项 7 列表.clear () 清空列表 8 列表.count (元素) 统计此元素在列表中出现的次数 9 列表.index (元素) 查找指定元素在列表的下标找不到报错 ValueError 10 len (列表) 统计容器内有多少元素
2.4 列表的遍历 将容器内的元素依次取出进行处理的行为,称之为遍历、迭代 。
index = 0
while index < len (列表):
元素 = 列表 [index]
index += 1
lst = [1 , 3 , 5 , 7 , 9 ]
index = 0
while index < len (lst):
print (lst[index])
index += 1
思路 :直接从列表中取出元素,代码更简洁,更适合遍历数据容器。
for 临时变量 in 数据容器:
对临时变量进行处理
lst = [1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 ]
for i in lst:
print (i)
3 元组
列表的特点 :可以修改。如果希望传递的信息不被篡改,列表就不合适了。
元组的特点 :和列表一样,可以封装多个、不同类型的元素。
元组与列表的最大区别 :元组一旦定义完成,就不可修改 。
元组的适用场景 :当我们需要在程序内封装数据,又不希望封装的数据被篡改时,元组就非常合适了。
3.1 元组的定义 定义元组需要使用小括号,且使用逗号隔开各个数据,数据可以是不同类型
定义元组字面量 (元素,元素,......, 元素)
定义元组变量 变量名称 = (元素,元素,......, 元素)
定义空元组 变量名称 = ()
方式 1 变量名称 = tuple() # 方式 2
(1 , 3 , 5 , "haha" )
t1 = (1 , 2 , 3 , "6" )
print (t1, "类型:" , type (t1))
t1 = ()
t2 = tuple ()
print (type (t1), type (t2))
t1 = (1 ,)
print (type (t1))
t1 = ( (1 , 2 , 3 ), (4 , 5 , 6 ) )
print (t1[0 ][0 ])
Traceback (most recent call last): File "D:\python-learn\05_数据容器\test.py" , line 3 , in <module > t1[0 ] = 5 TypeError: 'tuple' object does not support item assignment
可以修改元组内的 list 的内容(修改元素、增加、删除、反转等)
t1 = (1 , 2 , ['item' , 'demo' ])
t1[2 ][1 ] = 'best'
print (t1)
为什么这个可以修改呢?
答:因为这是对元组内的某个元素进行重新赋值
元组的'不可变'是指元组本身的元素不可变,如果元素是列表这种可变对象,我们依然可以修改列表内部的内容,因为这并没有改变元组里存的那个指针。
序号 方法 功能描述 1 index() 查找某个数据,如果数据存在返回对应的下标,否则报错 2 count() 统计某个数据在当前元组出现的次数 3 len(元组) 统计元组内的元素个数
不可修改内容(可以修改内部 list 的内部元素 )
和 list 基本相同(有序、任意数量元素、允许重复元素),唯一不同在于不可修改 。
支持 for 循环
3.2 重新认识字符串 尽管字符串看起来并不像:列表、元组那样,一看就是存放了许多数据的容器。但不可否认的是,字符串同样也是数据容器的一员。
字符串是字符的容器,一个字符串可以存放任意数量的字符。
字符串和列表、元组一样,也可以通过下标 来访问其中的字符。
name = "example"
print (name[0 ])
print (name[-1 ])
修改 :无法直接修改指定下标的字符(如 字符串[0] = "a" )
移除 :无法移除指定下标的字符(如 del 字符串[0] 、字符串.remove() 、字符串.pop() )
追加 :无法直接在字符串末尾追加字符(如 字符串.append() )
如果必须对字符串进行修改 ,只能生成一个新的字符串 ,旧的字符串本身不会被改变 。
功能 :按照指定的分隔符字符串,将字符串划分为多个字符串,并存入列表对象中
name = "传智播客 传智教育 黑马程序员 博学谷"
name_list = name.split(" " )
print (name_list)
print (type (name_list))
s = "周杰伦 | 王力宏 | 刘德滑"
lst = s.split("|" )
print ("字符串本身:" , s)
print ("分隔后:" , lst, type (lst))
字符串本身:周杰伦 | 王力宏 | 刘德滑
分隔后:['周杰伦' , '王力宏' , '刘德滑' ] <class 'list' >
字符串本身不变 :原字符串 s 的值没有被修改,这符合字符串不可变的特性。
分割生成新列表 :split("|") 方法会把原字符串按 | 切分成多个子字符串,然后打包成一个新的列表返回。
返回类型是列表 :type(lst) 显示结果为 <class 'list'> ,说明分割操作成功生成了一个列表对象。
功能 :去除字符串首尾的空格、换行符 \n、制表符 \t 等空白字符,返回一个新字符串,原字符串不变。
my_str = " example and demo "
print (my_str.strip())
s = " \nexample666\n "
s2 = s.strip()
print (s2)
功能 :去除字符串首尾的指定字符。注意:传入的字符串会被拆成单个字符,只要是其中任何一个字符都会被移除。
my_str = "12example and demo21"
print (my_str.strip("12" ))
s = "|||example666|||"
s2 = s.strip("|" )
print (s2)
说明 :数字、字母、符号、空格、中文等,都算作 1 个字符。
my_str = "1234 abcd !@#$ 黑马程序员"
print (len (my_str))
s = "example a a a a a a a"
num = s.count("a" )
print (num)
同列表、元组一样,字符串也支持 while 循环和 for 循环进行遍历。
my_str = "黑马程序员"
index = 0
while index < len (my_str):
print (my_str[index])
index += 1
my_str = "黑马程序员"
for i in my_str:
print (i)
编号 操作 说明 1 字符串 [下标] 根据下标索引取出特定位置字符 2 字符串.index (字符串) 查找给定字符串的第一个匹配项的下标 3 字符串.replace (字符串 1, 字符串 2) 将字符串内的全部字符串 1,替换为字符串 2 不会修改原字符串,而是得到一个新的 4 字符串.split (字符串) 按照给定字符串,对字符串进行分隔不会修改原字符串,而是得到一个新的列表 5 字符串.strip () 字符串.strip (字符串) 移除首尾的空格和换行符或指定字符串 6 字符串.count (字符串) 统计字符串内某字符串的出现次数 7 len (字符串) 统计字符串的字符个数
只可以存储字符串
长度任意(取决于内存大小)
支持下标索引
允许重复字符串存在
不可以修改(增加或删除元素等)
支持 for 循环
4 序列
4.1 序列的定义 序列是指:内容连续、有序、可使用下标索引的一类数据容器。
序列的典型特征就是:有序并可用下标索引,字符串、元组、列表均满足这个要求。
4.2 序列的切片 序列支持切片,即:列表、元组、字符串,均支持进行切片操作。
表示从序列中,从指定位置开始,依次取出元素,到指定位置结束,得到一个新序列。
起始下标 :表示从何处开始,可以留空,留空视作从头开始
结束下标 (不含):表示何处结束,可以留空,留空视作截取到结尾
步长 :表示取元素的间隔
步长 1 表示,一个个取元素
步长 2 表示,每次跳过 1 个元素取
步长 N 表示,每次跳过 N-1 个元素取
步长为负数 表示,反向取 (注意:起始下标和结束下标也要反向标记)
my_str = "12345"
new_str = my_str[::-1 ]
print (new_str)
new_str = my_str[:4 :2 ]
print (new_str)
my_list = [1 , 2 , 3 , 4 , 5 ]
new_list = my_list[1 :4 ]
print (new_list)
new_list = my_list[::2 ]
print (new_list)
new_list = my_list[3 :1 :-1 ]
print (new_list)
lst = ["aa" , "bb" , 3 , 5 , 6 ]
print (lst[1 :3 ])
print (lst[-2 :-5 :-1 ])
my_tuple = (1 , 2 , 3 , 4 , 5 )
new_tuple = my_tuple[:]
print (new_tuple)
new_tuple = my_tuple[:1 :-2 ]
print (new_tuple)
切片操作对列表、元组、字符串 是完全通用的。
非常灵活,起始位置、结束位置、步长(正序 / 反序)都可以自行控制。
切片返回的是一个新的序列,不会修改原序列。
5 集合 我们目前已经接触了列表、元组、字符串三个数据容器,基本满足大多数使用场景。但它们都有一个明显的局限:都支持重复元素且是有序的 。
当业务场景需要对内容进行去重处理时,列表、元组、字符串就不方便了。
特性 列表 元组 字符串 存储类型 混装 混装 单一存储(字符) 有序性 有序(支持下标) 有序(支持下标) 有序(支持下标) 元素重复 支持重复 支持重复 支持重复 可修改性 可以修改 不可修改 不可修改
5.1 基本语法
列表 使用:[]
元组 使用:()
字符串 使用:""
集合 使用:{}
5.2 集合的操作
{1 , 3 , 5 , "哈哈" , True , 3 , 5 }
set1 = {1 , 3 , 5 , "哈哈" , True , 3 , 5 }
set2 = set ()
print (set1, type (set1))
print (set2, type (set2))
set3 = {"bbb" , "bbb" , "aaa" , "ccc" }
print (set3)
首先,因为集合是无序的,所以集合不支持:下标索引访问
但是集合和列表一样,是允许修改的,所以我们来看看集合的修改方法。
添加新元素
语法:集合.add (元素):将指定元素,添加到集合内
结果:集合本身被修改,添加了新元素
my_set = {"Hello" , "World" }
my_set.add("item" )
print (my_set)
my_set.remove("d" )
print (my_set)
my_set = {"Hello" , "world" , "item" }
element = my_set.pop()
print (my_set)
print (element)
my_set.clear()
print (my_set)
语法:集合 1.union(集合 2)
功能:将集合 1 和集合 2 组合成新集合
结果:得到新集合,集合 1 和集合 2 不变
set1 = {1 , 2 , 3 }
set2 = {1 , 5 , 6 }
set3 = set1.union(set2)
print (set3)
print (set1)
print (set2)
set1 = {1 , 2 , 3 }
set2 = {1 , 4 , 5 }
set3 = set1.union(set2)
print ("合并后:" , set3)
print ("原有 set1:" , set1)
print ("原有 set2:" , set2)
语法:len(集合)
功能:统计集合内有多少元素
结果:得到一个整数结果
set1 = {1 , 2 , 3 }
print (len (set1))
my_set = {"c" , "a" , "b" , "c" }
print (len (my_set))
集合支持 for 循环遍历
集合不支持下标索引,因此不支持 while 循环
set1 = {1 , 2 , 3 }
for i in set1:
print (i)
5.3 总结 编号 操作 说明 1 集合.add (元素) 集合内添加一个元素 2 集合.remove (元素) 移除集合内指定的元素 3 集合.pop () 从集合中随机取出一个元素 4 集合.clear () 将集合清空 5 集合 1.difference (集合 2) 得到一个新集合,内含 2 个集合的差集原有的 2 个集合内容不变 6 集合 1.difference_update (集合 2) 在集合 1 中,删除集合 2 中存在的元素集合 1 被修改,集合 2 不变 7 集合 1.union (集合 2) 得到 1 个新集合,内含 2 个集合的全部元素原有的 2 个集合内容不变 8 len (集合) 得到一个整数,记录了集合的元素数量
可以容纳多个数据
可以容纳不同类型的数据(混装)
数据是无序存储的(不支持下标索引)
不允许重复数据存在
可以修改(增加或删除元素等)
支持 for 循环
6 字典
6.1 字典的定义
使用 {} 存储数据,每一个元素是一个键值对
每一个键值对包含 Key 和 Value(用冒号 : 分隔)
键值对之间使用逗号 , 分隔
Key 和 Value 可以是任意类型的数据(key 不可为字典)
Key 不可重复,重复会对原有数据进行覆盖
stu_score = {"王力鸿" : 99 , "周杰伦" : 88 , "林俊节" : 77 }
d = {}
print (type (d))
d = dict ()
print (type (d))
{"周杰伦" : 99 , "王力鸿" : 88 , "林军杰" : 77 }
d = {"周杰伦" : 99 , "王力鸿" : 88 , "林军杰" : 77 , 0 : 66 }
d = {"周杰伦" : 99 , "王力鸿" : 88 , "林军杰" : 77 , "林军杰" : 66 }
print (d)
stu_score = {
"王力鸿" : {"语文" : 77 , "数学" : 66 , "英语" : 33 },
"周杰伦" : {"语文" : 88 , "数学" : 86 , "英语" : 55 },
"林俊节" : {"语文" : 99 , "数学" : 96 , "英语" : 66 }
}
stu_score = {
"王力鸿" : {"语文" : 77 , "数学" : 66 , "英语" : 33 },
"周杰伦" : {"语文" : 88 , "数学" : 86 , "英语" : 55 },
"林俊节" : {"语文" : 99 , "数学" : 96 , "英语" : 66 }
}
print (stu_score["王力鸿" ])
print (stu_score["王力鸿" ]["语文" ])
print (stu_score["周杰伦" ]["数学" ])
d = {
"周杰伦" : ["唱" , "跳" , "rap" ],
"林军杰" : ["吃" , "喝" , "玩" ],
"王力鸿" : ["睡" , "呆" , "憨" ]
}
print (d["王力鸿" ])
print (d["王力鸿" ][1 ])
6.2 字典的操作
键值对的 Key 和 Value 可以是任意类型(Key 不可为字典)
字典内 Key 不允许重复,重复添加等同于覆盖原有数据
字典不可用下标索引,而是通过 Key 检索 Value
stu_score = {
"王力鸿" : 77 ,
"周杰伦" : 88 ,
"林俊节" : 99
}
stu_score["张学渣" ] = 66
print (stu_score)
stu_score = {
"王力鸿" : 77 ,
"周杰伦" : 88 ,
"林俊节" : 99
}
stu_score["王力鸿" ] = 100
print (stu_score)
stu_score = {
"王力鸿" : 77 ,
"周杰伦" : 88 ,
"林俊节" : 99
}
value = stu_score.pop("王力鸿" )
print (value)
print (stu_score)
stu_score = {
"王力鸿" : 77 ,
"周杰伦" : 88 ,
"林俊节" : 99
}
stu_score.clear()
print (stu_score)
stu_score = {
"王力鸿" : 77 ,
"周杰伦" : 88 ,
"林俊节" : 99
}
keys = stu_score.keys()
print (keys)
stu_score = {
"王力鸿" : 77 ,
"周杰伦" : 88 ,
"林俊节" : 99
}
keys = stu_score.keys()
for key in keys:
print (f"学生:{key} , 分数:{stu_score[key]} " )
for key in stu_score.keys():
print (f"{key} : {stu_score[key]} " )
for key in stu_score:
print (f"{key} : {stu_score[key]} " )
6.3 总结
可以容纳多个数据
可以容纳不同类型的数据
每一份数据是 Key-Value 键值对
可以通过 Key 获取到 Value,Key 不可重复(重复会覆盖)
不支持下标索引
可以修改(增加或删除更新元素等)
支持 for 循环,不支持 while 循环
支持 :列表、元组、字符串 → 序列类型
不支持 :集合、字典 → 非序列类型
支持 :列表、元组、字符串 → 序列类型
不支持 :集合、字典 → 非序列类型
6.4 练习案例 d = {
"王力鸿" : {"部门" : "科技部" , "工资" : 3000 , "级别" : 1 },
"周杰伦" : {"部门" : "市场部" , "工资" : 5000 , "级别" : 2 },
"林军杰" : {"部门" : "市场部" , "工资" : 7000 , "级别" : 3 },
"张学油" : {"部门" : "科技部" , "工资" : 4000 , "级别" : 1 },
"刘德滑" : {"部门" : "市场部" , "工资" : 6000 , "级别" : 2 }
}
print (f"更新前:\n{d} " )
for k in d:
if d[k]["级别" ] == 1 :
d[k]["工资" ] = d[k]["工资" ] + 1000
d[k]["级别" ] = 2
print (f"更新后:\n{d} " )
7 总结
列表 :一批数据,可修改、可重复的存储场景
元组 :一批数据,不可修改、可重复的存储场景
字符串 :一串字符串的存储场景
集合 :一批数据,去重存储场景
字典 :一批数据,可用 Key 检索 Value 的存储场景
类数据容器(列表、元组、字符串、集合、字典)都支持 for 循环遍历
列表、元组、字符串支持 while 循环(因为支持下标索引)
集合、字典不支持 while 循环 (因为无法使用下标索引)
lst = [1 , 3 , 5 , 7 , 9 ]
t = (1 , 3 , 5 , 7 , 9 )
s_str = "itheima"
s_set = {1 , 3 , 5 , 7 , 9 }
d = {"1" : 11 , "2" : 22 , "3" : 33 }
print ("*" *50 )
print (f"{lst} 转 str: {str (lst)} " )
print (f"{t} 转 str: {str (t)} " )
print (f"{s_set} 转 str: {str (s_set)} " )
print (f"{d} 转 str: {str (d)} " )
print ("*" *50 )
print (f"{lst} 转 set: {set (lst)} " )
print (f"{t} 转 set: {set (t)} " )
print (f"{s_str} 转 set: {set (s_str)} " )
print (f"{d} 转 set: {set (d)} " )
print (f"{t} 转 list: {list (t)} " )
print (f"{s_str} 转 list: {list (s_str)} " )
print (f"{s_set} 转 list: {list (s_set)} " )
print (f"{d} 转 list: {list (d)} " )
sorted(容器,[reverse=True])
lst = [5 , 3 , 1 , 7 , 2 ]
t = (5 , 3 , 1 , 7 , 2 )
s_str = "itheima"
s_set = {5 , 3 , 1 , 7 , 2 }
d = {"33" : 11 , "cc" : 22 , "bb" : 33 }
print ("*" *50 )
print (f"{lst} , 排序后:{sorted (lst)} " )
print (f"{t} , 排序后:{sorted (t)} " )
print (f"{s_str} , 排序后:{sorted (s_str)} " )
print (f"{s_set} , 排序后:{sorted (s_set)} " )
print (f"{d} , 排序后:{sorted (d)} " )
print ("*" *50 )
print (f"{lst} , 排序后 (reverse=True): {sorted (lst, reverse=True )} " )
print (f"{t} , 排序后 (reverse=True): {sorted (t, reverse=True )} " )
print (f"{s_str} , 排序后 (reverse=True): {sorted (s_str, reverse=True )} " )
print (f"{s_set} , 排序后 (reverse=True): {sorted (s_set, reverse=True )} " )
print (f"{d} , 排序后 (reverse=True): {sorted (d, reverse=True )} " )
lst = [1 , 3 , 5 , 7 , 9 ]
t = (1 , 3 , 5 , 7 , 9 )
s_str = "itheima"
s_set = {1 , 3 , 5 , 7 , 9 }
d = {"1" : 11 , "2" : 22 , "3" : 33 }
print (f"{lst} , max: {max (lst)} " )
print (f"{t} , max: {max (t)} " )
print (f"{s_str} , max: {max (s_str)} " )
print (f"{s_set} , max: {max (s_set)} " )
print (f"{d} , max: {max (d)} " )
print (f"{lst} , min: {min (lst)} " )
print (f"{t} , min: {min (t)} " )
print (f"{s_str} , min: {min (s_str)} " )
print (f"{s_set} , min: {min (s_set)} " )
print (f"{d} , min: {min (d)} " )
比较完全记不住,因为中文字多,每一个字在编码表内对应数字,靠数字比较。
小写字母>大写,大写字母>数字 其余查询 ASCII 码表 字符串在存储上都是依靠码表存储
小写字母>大写,大写字母>数字 其余查询 ASCII 码表 字符串在存储上都是依靠码表存储对应数字:
英文、数字、符号等,依靠 ASCII 码表,对应数字存储
中文,依靠 UTF8 或 GBK 等码表,对应数字存储 存的是数字,显示是字符 字符串比较是按位比较(逐位比较),比较其存储的真实数字大小
从左到右 一个位一个位比较
有内容是大于空的
print ("a" > "A" )
print ("A" > "!" )
print ("abc" > "abcd" )
print ("123" > "2" )
print ("黑" > "马" )
相关免费在线工具 加密/解密文本 使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online
Gemini 图片去水印 基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online
curl 转代码 解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online
Base64 字符串编码/解码 将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
Base64 文件转换器 将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
Markdown转HTML 将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online