目录

数据容器

列表

列表定义方式

列表的下标(索引)

列表的相关操作(方法)

列表的特点

列表的遍历-while和for循环

列表的遍历-while循环

列表的遍历-for循环

while循环和for循环的对比

元组

元组的相关操作(方法)

元组的特点

字符串

字符串的下标(索引)

字符串的相关操作(方法)

字符串的特点

序列

集合

集合的相关操作(方法)

集合的特点

字典

字典的嵌套

字典的相关操作(方法)

字典的特点

数据容器分类

数据容器特点对比

数据容器的通用操作

字符串的大小比较


hello小伙伴们,今天来分享Python中的数据容器啦!本期内容很多很多很多~因为想用一篇直接列出数据容器的基础知识,所以希望感兴趣的友友可以继续看哦。话不多说,开始了!

数据容器

首先我们需要了解下学习数据容器的原因,我们先思考一个问题:如果我们想要在程序中记录5名学生的姓名信息,应该怎么做呢?有以下两种方法。

① 定义5个变量(不高级且低效)

name1='王力'
name2='周杰'
name3='林俊'
name4='张学'
name5='刘德'

② 定义一个变量(优雅且高效)

name_list=['王力','周杰','林俊','张学','刘德']
print(name_list)

由此可见,通过使用列表这个数据容器,完成了多份数据的容纳,其使得代码变得很高效,因此我们需要学习数据容器来优雅地写代码。

上面的name_list这类的数据容器为列表,数据容器指的是一种可以容纳多份数据的数据类型,容纳的每一份数据称之为1个元素,每一个元素可以是任意类型的数据,如字符串、数字、布尔等。在Python中,根据特点的不同将数据容器分为5类,分别为列表(list)、元组(tuple)、字符串(str)、集合(set)、字典(dict)。接下来会为大家详细介绍这5类数据容器。

列表

列表定义方式

列表的定义方式如下:

变量名称=[元素1,元素2,元素3,元素4,······]

注意:

① 列表中的每一个数据都称为元素;

② 列表以[ ]作为标识;

③ 列表内每一个元素之间都用逗号(英文)隔开。

下面举一个例子,希望方便大家理解。

# 定义一个列表list
my_list=["itheima","ityueliang","python"]
print(my_list)
print(type(my_list))

列表可以一次存储多个数据,且可以为不同的数据类型;元素也可以为列表,因此列表也支持嵌套,称为嵌套列表。举例如下。

# 定义一个元素为不同数据类型的列表
my_list=["ityueliang",666,True]
print(my_list)
print(type(my_list))

# 定义一个嵌套的列表
my_list=[[1,2,3],[4,5,6]]
print(my_list)
print(type(my_list))

列表的下标(索引)

我们如何从列表中取出特定位置的数据呢?答案是利用下标索引,如下图所示。

请注意,列表中的每一个元素都有其下标索引,从前往后的方向,从0开始,依次递增(0,1,2,3,······);若从后往前的方向,从-1开始,依次递减(-1,-2,-3,······)。只需按照下标索引,即可获取对应位置的元素。但是请注意通过下标索引取数据时,一定不要超出范围!

# 通过下标索引取出对应位置的数据
my_list=["Tom","Lily","Rose"]
# 列表[下标索引],从前向后从0 开始,每次+1;从后向前从-1开始,每次-1
print(my_list[0])
print(my_list[1])
print(my_list[2])
# 错误示范:通过下标索引取数据,一定不要超出范围
# print(my_list[3])

# 通过下标索引取出数据(倒序取出)
print(my_list[-1])
print(my_list[-2])
print(my_list[-3])

嵌套列表的下标(索引)

下面举一个例子,希望方便大家理解。

# 取出嵌套列表的元素
my_list=[[1,2,3],[4,5,6]]
print(my_list[1][1])

列表的相关操作(方法)

表1-列表的操作(方法)
序号使用方式作用
1列表.append(元素)向列表中追加一个元素
2列表.extend(容器)将数据容器中的内容依次取出,追加到列表尾部
3列表.insert(下标,元素)在指定的下标处插入指定的元素
4del列表[下标]删除列表指定下标的元素
5列表.pop(元素)删除列表指定下标的元素
6列表.remove(元素)从前往后,删除此元素第一个匹配项
7列表.clear(元素)清空列表
8列表.count(元素)统计此元素在列表中出现的次数
9列表.index(元素)查找指定元素在列表中的下标,找不到时报错ValueError
10len(元素)统计容器内有多少个元素

下面代码为各种方法的具体使用。

mylist=["ityueliang","itheima","python"]
# 1.1 查找某元素在列表内的下标索引
index=mylist.index("itheima")
print(f"itheima在列表中的下标索引值是:{index}")
# 1.2如果被查找的元素不存在,会报错
# index=mylist.index("hello")
# print(f"hello在列表中的下标索引值是:{index}")

# 2.修改特定下标索引的值
mylist[0]="月亮程序员"
print(f"列表被修改元素值后,结果是:{mylist}")

# 3.在特定下标位置插入新元素
mylist.insert(1,"best")
print(f"列表被修改元素值后,结果是:{mylist}")

# 4.在列表尾部追加‘’‘单个’‘’新元素
mylist.append("月亮程序员")
print(f"列表被修改元素值后,结果是:{mylist}")

# 5.在列表尾部追加‘’‘一批’‘’新元素
mylist2=[1,2,3]
mylist.extend(mylist2)
print(f"列表被修改元素值后,结果是:{mylist}")

# 6.删除指定下标索引的元素(2种方式)
mylist=["ityueliang","itheima","python"]
# 6.1 方式1:del 列表[下标]
del mylist[2]
print(f"列表删除元素后,结果是:{mylist}")
# 6.2 方式2:列表.pop(下标)
mylist=["ityueliang","itheima","python"]
element=mylist.pop(2)
print(f"通过pop方法取出元素后列表内容:{mylist},取出的元素是{element}")

# 7.删除某元素在列表中的第一个匹配项
mylist=["ityueliang","itheima","ityueliang","itheima","python"]
mylist.remove("itheima")
print(f"通过remove方法移除元素后,列表的结果是{mylist}")

# 8.清空列表
mylist.clear()
print(f"列表被清空了,结果是{mylist}")

# 9.统计列表内某元素的数量
mylist=["ityueliang","itheima","ityueliang","itheima","python"]
count=mylist.count("itheima")
print(f"列表中itheima的数量是:{count}")

# 10.统计列表中全部的元素数量
mylist=["ityueliang","itheima","ityueliang","itheima","python"]
count=len(mylist)
print(f"列表的元素数量总共有:{count}个")

列表的特点

① 可以容纳多个元素(上限为2**63-1个);

② 可以容纳不同类型的元素(混装);

③ 数据是有序存储的(有下标序号);

④ 允许重复数据存在;

⑤ 可以修改(增加、删除或清空元素等)。

列表的遍历-while和for循环

数据容器可以存储多个元素,从容器中依次将元素取出来进行处理的行为称为遍历、迭代。接下来就从while循环和for循环来分享。

列表的遍历-while循环

通过使用列表[下标]的方式,结合while循环,定义一个变量表示下标(从0 开始),定义循环条件为“下标值<列表的元素数量”,详细代码(含说明文档)如下。

def list_while_func():
    """
    使用while循环遍历列表的演示函数
    :return: None
    """
    my_list=["月亮教育","月亮程序员","Python"]
    # 循环控制变量通过下标索引来控制,默认为0
    # 每次循环将下标索引变量+1
    # 循环条件:下标索引变量<列表的元素数量

    # 定义一个变量用来标记列表的下标
    index=0
    while index<len(my_list):
        # 通过index变量取出对应下标的元素
        element=my_list[index]
        print(f"列表的元素:{element}")

        # 至关重要:将循环变量每一次循环都+1
        index+=1

list_while_func()
列表的遍历-for循环

列表的遍历中for循环的语法大致为:

for 临时变量 in 数据容器:

        对临时变量进行处理

详细代码(含说明文档)如下。

def list_for_func():
    """
    使用for循环遍历列表的演示函数
    :return: None
    """

    my_list=[1,2,3,4,5]
    # for 临时变量 in 数据容器:
    for element in my_list:
        print(f"列表的元素有:{element}")


list_for_func()
while循环和for循环的对比

while循环和for循环都是循环语句,但是也有区别。

① 循环控制上

        ① while循环可以自定义循环条件,并自行控制;

        ② for循环不可以自定义循环条件,只能从容器中依次取出数据。

② 无限循环上

        ① while循环可以通过条件控制做到无限循环;

        ② 在理论上,for循环不可以无限循环,因为被遍历的容器的容量不是无限的。

③ 应用场景上

        ① while循环适用于任何需要循环的场景;

        ② for循环适用于遍历数据容器或者简单的固定次数循环的场景。

总而言之,for循环更简单,while循环更灵活。

元组

关于元组,需要了解的一点是:元组一旦定义完成,就不能修改。因此,当需要在程序内封装数据,同时又不想封装的数据呗篡改,那么就可以选择元组。

元组的相关操作(方法)

表2-元组的操作(方法)
序号方法作用
1index()查找某个数据,若数据存在则返回对应的下标,否则会报错
2count()统计某个数据在当前元组出现的次数
3len(元组)统计元组内的元素个数

相关操作的详细代码如下。

# 定义元组
t1=(1,"hello",True)
t2=()   #空的元组
t3=tuple()    #空的元组
print(f"t1的类型是:{type(t1)},内容是:{t1}")
print(f"t2的类型是:{type(t2)},内容是:{t2}")
print(f"t3的类型是:{type(t3)},内容是:{t3}")

# 定义单个元素的元组!!!注意要加上一个逗号,否则类型是“str"
t4=("hello",)   # 注意!!!!
print(f"t4的类型是:{type(t4)},内容是:{t4}")

# 元组的嵌套
t5=((1,2,3),(4,5,6))
print(f"t5的类型是:{type(t5)},内容是:{t5}")

# 下标索引取出内容
num=t5[1][2]
print(f"从嵌套元组中取出的数据是:{num}")

# 元组的操作:len函数统计元组元素数量!!!注意:元组不能修改
# index查找方法
t6=("月亮教育","月亮程序员","Python")
index=t6.index("月亮程序员")
print(f"在元组t6中查找月亮程序员的下标是:{index}")

# 元组的操作:count统计方法
t7=("传智教育","月亮程序员","月亮程序员","月亮程序员","Python")
num=t7.count("月亮程序员")
print(f"在t7中月亮程序员的数量是:{num}个")

# 元组的操作:len函数统计元组元素数量
t8=("月亮教育","月亮程序员","月亮程序员","月亮程序员","Python")
num=len(t8)
print(f"t8元组中的元素有:{num}个")

# 元组的遍历:while
index=0
while index<len(t8):
    print(f"1元组的元素有:{t8[index]}")
    # 至关重要
    index+=1

# 元组的遍历:for
for element in t8:
    print(f"2元组的元素有:{element}")

# 修改元组内容不可以!!
# t8[0]="itcast"

# 定义一个元组,元组中的list中的内容可以修改
t9=(1,2,["itheima","ityueliang"])
print(f"t9的内容是{t9}")
t9[2][0]="月亮程序员"
t9[2][1]="月亮教育"
print(f"t9的内容是{t9}")

元组的特点

同list基本相同,相似的特点为:有序、任意数量元素、允许重复元素,唯一不同的是元组不可修改,即不可以修改元组内的元素,同时元组也支持for循环。

字符串

字符串是字符的容器,一个字符串可以存储任意数量的字符。例如字符串'yueliang',

字符串的下标(索引)

字符串是无法修改的容器,如果必须修改,则会得到一个新的字符串,旧的字符串是无法修改的。同其他数据容器一样,字符串也可以通过下标访问。

① 从前往后,下标从0开始;

② 从后往前,下标从-1开始。

字符串的相关操作(方法)

表3-字符串的相关操作(方法)
序号操作说明
1字符串[下标]根据下标索引去除特定位置的字符
2字符串.index(字符串)查找给定字符的第一个匹配项的下标
3字符串.replace(字符串1,字符串2)将字符串内的全部字符串1替换成字符串2,得到一个新的字符串
4字符串.split(字符串)按照给定的字符串,对字符串进行分隔,得到一个新的字符串
5

字符串.strip()

字符串.strip(字符串)

移除首尾的空格和换行符或指定字符串
6字符串.count(字符串)统计字符串内某字符串出现的次数
7len(字符串)统计字符串的字符个数

相关操作的详细代码如下。

# 字符串不可以修改
my_str="itheima and ityueliang"
# 通过下标索引取值
value=my_str[2]
value2=my_str[-16]
print(f"从字符串{my_str}取下标为2的元素,值是:{value},取下标为-16的元素的值是:{value2}")

# my_str[2]='H'  字符串只读,不可修改

# index方法
value=my_str.index("and")
print(f"在字符串{my_str}中查找and,其起始下标是:{value}")

# replace方法,字符串本身并没有改变,而是得到了一个新的字符串
new_my_str=my_str.replace("it","程序")
print(f"将字符串{my_str}进行替换后得到:{new_my_str}")

# split方法
my_str="hello python itheima ityueliang"
my_str_list=my_str.split(" ")
print(f"将字符串{my_str}进行split切分后得到:{my_str_list},它的类型是:{type(my_str_list)}")

# strip方法
my_str=" itheima and ityueliang "
new_my_str=my_str.strip()  # 不传入参数,去除首尾空格
print(f"字符串{my_str}被strip后,结果是:{new_my_str}")

my_str="12itheima and ityueliang21"
new_my_str=my_str.strip("12")   # 相当于去除字符串1和字符串2
print(f"字符串{my_str}被strip后,结果是:{new_my_str}")

# 统计字符串中某字符串的出现次数,count
my_str="itheima and ityueliang"
count=my_str.count("it")
print(f"字符串{my_str}中it出现的次数是:{count}")

# 统计字符串的长度,len()
num=len(my_str)
print(f"字符串{my_str}的长度是;{num}")

字符串的遍历也有while和for两种循环,具体代码如下。

# 字符串的遍历:while
my_str="月亮程序员"
index=0
while index<len(my_str):
    print(my_str[index])
    index+=1

# 字符串的遍历:for
my_str="月亮程序员"
for element in my_str:
    print(element)

字符串的特点

① 只可以存储字符串;

② 长度是任意的(取决于内存大小);

③ 支持下标索引;

④ 允许重复字符串存在;

⑤ 不可以修改(增加或删除元素等);

⑥ 支持while和for循环。

序列

在数据容器中,列表、元组和字符串可以视为序列。序列指的是内容连续、有序,且支持下标索引的一类数据容器。序列有一种常用操作,即序列的切片。切片指的是从一个序列中取出一个子序列。其语法大致为:

序列[起始下标:结束下标:步长]

其含义是:从从序列中,从指定的起始位置开始,按照步长,依次取出元素,直至到指定位置结束,得到一个新的序列,具体规定如下。

① 起始下标表示从何处开始,若起始下标为空白,代表从头开始;

② 结束下标(不被包含)表示从何处结束,可以留空,代表到结尾结束;

③ 步长表示依次取元素的间隔:

        ① 步长为1代表一个个地取元素;

        ② 步长为2代表每次跳过1个元素取后面的那个元素;

        ③ 步长为n代表每次跳过(n-1)个元素取后面的那个元素;

        ④ 步长为复数时代表反向取元素;

        ⑤ 步长省略时,代表默认为1。

下面举一个例子,希望方便大家理解。

# 对list进行切片,从1开始,4结束,步长1
my_list=[0,1,2,3,4,5,6]
result_1=my_list[1:4:1]      # 注意不包括4,步长默认为1,所以可以省略不写,改为my_list[1:4]
print(f"结果1为:{result_1}")

# 1.对tuple进行切片,从头开始,到最后结束,步长1
my_tuple=(0,1,2,3,4,5,6)
result_2=my_tuple[:]         # 起始和结束可以不写,表示从头到尾,步长为1可以省略不写
print(f"结果2为:{result_2}")

# 2.对str进行切片,从头开始,到最后结束,步长2
my_str="01234567"
result_3=my_str[::2]
print(f"结果3为:{result_3}")

# 3.对str进行切片,从头开始,到最后结束,步长-1
my_str="01234567"
result_4=my_str[::-1]   # 等同于将序列反转了
print(f"结果4为:{result_4}")

# 4.对list进行切片,从3开始,到1结束,步长-1
my_list=[0,1,2,3,4,5,6]
result_5=my_list[3:1:-1]
print(f"结果5为:{result_5}")

# 5.对tuple进行切片,从头开始,到最后结束,步长-2
my_tuple=(0,1,2,3,4,5,6)
result_6=my_tuple[::-2]
print(f"结果6为:{result_6}")

集合

集合的定义为:{元素,元素,元素,······}

集合不支持元素的重复(自带去重功能)且内容无序(就不能通过下标取出特定元素)。

集合的相关操作(方法)

表4-集合的相关操作(方法)
序号操作说明
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)得到一个新集合,内含2个集合的全部元素,原有的2个集合的内容不变
8len(集合)得到一个整数,记录了集合的元素数量

相关操作的详细代码如下。

# 1.定义集合,注意集合不可以重复,内容无序,故不支持下标索引
my_set={"月亮教育","黑马程序员","itheima","月亮教育","黑马程序员","itheima","月亮教育","黑马程序员","itheima"}
my_set_empty=set()      # 定义空集合
print(f"my_set的内容是:{my_set},类型是{type(my_set)}")
print(f"my_set_empty的内容是:{my_set_empty},类型是{type(my_set_empty)}")

# 2.添加新元素
my_set.add("Python")
my_set.add("月亮教育")
print(f"my_set添加元素后的结果是{my_set}")

# 3.移除元素
my_set.remove("黑马程序员")
print(f"my_set移除黑马程序员后的结果是{my_set}")

# 4.随机取出一个元素,取出后集合中不再有pop的元素
my_set={"月亮教育","黑马程序员","itheima"}
element=my_set.pop()
print(f"集合被取出元素是:{element},取出元素后:{my_set}")

# 5.清空集合
my_set.clear()
print(f"集合被清空了,结果是:{my_set}")

# 6.取两个集合的差集
set1={1,2,3}
set2={1,5,6}
set3=set1.difference(set2)
print(f"取出差集后的结果是:{set3}")
print(f"取差集后,原有set1的内容:{set1}")
print(f"取差集后,原有set2的内容:{set2}")

# 7.消除2个集合的差集,在集合1内,删除和集合2相同的元素,结果为:集合1被修改,集合2不变
set1={1,2,3}
set2={1,5,6}
set1.difference_update(set2)
print(f"消除差集后,集合1结果是:{set1}")
print(f"消除差集后,集合2结果是:{set2}")

# 8.合并两个结合
set1={1,2,3}
set2={1,5,6}
set3=set1.union(set2)
print(f"两集合合并结果是:{set3}")
print(f"合并后集合1:{set1}")
print(f"合并后集合2:{set2}")

# 9.统计集合元素数量len()
set1={1,2,3,4,5,1,2,3,4,5}
num=len(set1)
print(f"集合内的元素数量有{num}个")

# 10.集合的遍历
# 集合不支持下标索引,不能用while循环
# 集合可以用for循环
set1={1,2,3,4,5}
for element in set1:
    print(f"集合的元素有;{element}")

集合的特点

① 可以容纳多个数据;

② 可以容纳不同类型的数据(混装);

③ 数据是无序存储的(不支持下标索引);

④ 不允许重复数据的存在;

⑤ 可以修改(增加、删除或清空元素等);

⑥ 支持for循环,不支持while循环(由于不支持下标索引)。

字典

字典中的元素不是一个个的,而是一对键值对,像查字典一样。字典也不能使用下标索引,但是字典可以通过key值来取得对应的value,字典内的key不允许重复,重复添加等同于覆盖原有的数据,可见下面的例子。

my_dict1={"王力":99,"周杰":88,"林俊":77,"王力":66}
print(f"王力的成绩为{my_dict1['王力']}")

字典的定义为:

{key:value,key:value,key:value,······}

下面举一个例子,希望方便大家理解。

# 从字典中基于key获取value
my_dict1={"王力":99,"周杰":88,"林俊":77}
score=my_dict1["王力"]
print(f"王力的考试分数是:{score}")
score=my_dict1["周杰"]
print(f"周杰的考试分数是:{score}")

字典的嵌套

字典中的key和value可以是任意的数据类型(key不可以为字典),这就表明,字典是可以嵌套的。下面举一个例子,希望方便大家理解。大家敲代码的时候如果报错了,请记得检查逗号是否都写了,注意要写英文的。

# 字典的嵌套
stu_score_dict={
    "王力":{
        "语文":77,
        "数学":66,
        "英语":33
    },"周杰":{
        "语文": 88,
        "数学": 86,
        "英语": 55
    },"林俊":{
        "语文": 99,
        "数学": 96,
        "英语": 66
    }
}
print(f"学生的考试信息是:{stu_score_dict}")

# 从嵌套字典中获取数据
# 看一下周杰的语文信息
score=stu_score_dict["周杰"]["语文"]
print(f"周杰的语文信息是:{score}")
score=stu_score_dict["林俊"]["英语"]
print(f"林俊的英语信息是:{score}")

字典的相关操作(方法)

表5-字典的相关操作(方法)
序号操作说明
1字典[key]获取指定key对应的value值
2字典[key]=value添加或更新键值对
3字典.pop(key)取出key对应的value并在字典内删除此key的键值对
4字典.clear()清空字典
5字典.keys()获取字典的全部key,可用于for循环遍历字典
6len(字典)计算字典内的的元素数量

相关操作的详细代码如下。

my_dict={"周杰":99,"林俊":88,"张学":77}
# 1.新增元素(不在字典中)
my_dict["张信"]=66
print(f"字典经过新增元素后,结果:{my_dict}")
# 2.更新元素(在字典中)
my_dict["周杰"]=33
print(f"字典经过更新后,结果:{my_dict}")
# 3.删除元素
score=my_dict.pop("周杰")
print(f"字典中被移除了一个元素,结果:{my_dict},周杰的考试分数是:{score}")

# 4.清空元素
my_dict.clear()
print(f"字典被清空了,内容是:{my_dict}")

# 5.获取全部key
my_dict={"周杰":99,"林俊":88,"张学":77}
keys=my_dict.keys()
print(f"字典的全部key是:{keys}")

# 6.遍历字典(字典不支持下标索引,所以不能用while循环来遍历)
# 方式1:通过获取到全部的key来完成遍历
for key in keys:
    print(f"字典的key是:{key}")
    print(f"字典的value是:{my_dict[key]}")
# 方式2:直接对字典进行for循环,每一次循环都是直接得到key
for key in my_dict:
    print(f"2字典的key是:{key}")
    print(f"2字典的value是:{my_dict[key]}")

# 7.统计字典内的元素数量
num=len(my_dict)
print(f"字典中的元素数量有:{num}个")

字典的特点

① 可以容纳多个数据;

② 可以容纳不同类型的数据;

③ 每一份数据是key-value键值对;

④ 可以通过key获取到value,key不可重复(重复的key对应的value会被最新的value值覆盖);

⑤ 不支持下标索引;

⑥ 可以修改(增加、删除或更新元素等);

⑦ 支持for循环,不支持while循环。

数据容器分类

从不同的角度分析,数据容器有很多的分类。

表6-数据容器分类
分类依据类别
是否支持下标索引支持:列表、元组、字符串——序列类型
不支持:集合、字典——非序列类型
是否支持重复元素支持:列表、元组、字符串——序列类型
不支持:集合、字典——非序列类型
是否可以修改支持:列表、集合、字典
不支持:元组、字符串

数据容器特点对比

表7-数据容器特点对比
依据列表元组字符串集合字典
元素数量支持多个支持多个支持多个支持多个支持多个
元素类型任意任意仅字符任意

key:value

key:除字典外的任意类型

value:任意类型

下标索引支持支持支持不支持不支持
重复元素支持支持支持不支持不支持
可修改性支持不支持不支持支持支持
数据有序是是是否否
使用场景可修改、可重复的一批数据记录的场景不可修改、可重复的一批数据记录的场景一串字符的记录的场景不可重复的数据记录的场景以key检索value的数据记录的场景

数据容器的通用操作

表8-数据容器通用功能
功能说明
通用for循环遍历容器(字典是遍历key)
max()容器内最大元素
min()容器内最小元素
len()容器元素个数
list()转换为列表
tuple()转换为元组
str()转换为字符串
set()转换为集合
sorted(序列,[reverse=True])排序,reverse=True表示降序,得到一个排好序的列表

下面举一个例子,希望方便大家理解。

my_list=[1,2,3,4,5]
my_tuple=(1,2,3,4,5)
my_str="abcdefg"
my_set={1,2,3,4,5}
my_dict={"key1":1,"key2":2,"key3":3,"key4":4,"key5":5}

# 1.len()元素个数
print(f"列表 元素个数有:{len(my_list)}")
print(f"元组 元素个数有:{len(my_tuple)}")
print(f"字符串元素个数有:{len(my_str)}")
print(f"集合 元素个数有:{len(my_set)}")
print(f"字典 元素个数有:{len(my_dict)}")

# 2.max最大元素
print(f"列表 最大的元素是:{max(my_list)}")
print(f"元组 最大的元素是:{max(my_tuple)}")
print(f"字符串最大的元素是:{max(my_str)}")
print(f"集合 最大的元素是:{max(my_set)}")
print(f"字典 最大的元素是:{max(my_dict)}")

# 3.min最小的元素
print(f"列表 最小的元素是:{min(my_list)}")
print(f"元组 最小的元素是:{min(my_tuple)}")
print(f"字符串最小的元素是:{min(my_str)}")
print(f"集合 最小的元素是:{min(my_set)}")
print(f"字典 最小的元素是:{min(my_dict)}")

# 4.1-类型转换:容器转列表
print(f"列表转列表的结果是:{list(my_list)}")
print(f"元组转列表的结果是:{list(my_tuple)}")
print(f"字符串转列表的结果是:{list(my_str)}")
print(f"集合转列表的结果是:{list(my_set)}")
print(f"字典转列表的结果是:{list(my_dict)}")
# 4.2-类型转换:容器转元组
print(f"列表转元组的结果是:{tuple(my_list)}")
print(f"元组转元组的结果是:{tuple(my_tuple)}")
print(f"字符串转元组的结果是:{tuple(my_str)}")
print(f"集合转元组的结果是:{tuple(my_set)}")
print(f"字典转元组的结果是:{tuple(my_dict)}")
# 4.3-类型转换:容器转字符串
print(f"列表转字符串的结果是:{str(my_list)}")
print(f"元组转字符串的结果是:{str(my_tuple)}")
print(f"字符串转字符串的结果是:{str(my_str)}")
print(f"集合转字符串的结果是:{str(my_set)}")
print(f"字典转字符串的结果是:{str(my_dict)}")
# 4.4-类型转换:容器转集合
print(f"列表转集合的结果是:{set(my_list)}")
print(f"元组转集合的结果是:{set(my_tuple)}")
print(f"字符串转集合的结果是:{set(my_str)}")
print(f"集合转集合的结果是:{set(my_set)}")
print(f"字典转集合的结果是:{set(my_dict)}")      # value丢失,变无序

# 5.进行容器的排序sorted,都会变成列表对象,同时字典的value值会丢失
my_list=[3,1,2,5,4]
my_tuple=(3,1,2,5,4)
my_str="becdfga"
my_set={3,1,2,5,4}
my_dict={"key3":1,"key1":2,"key2":3,"key5":4,"key4":5}
print(f"列表对象的排序结果是:{sorted(my_list)}")
print(f"元组对象的排序结果是:{sorted(my_tuple)}")
print(f"字符串对象的排序结果是:{sorted(my_str)}")
print(f"集合对象的排序结果是:{sorted(my_set)}")
print(f"字典对象的排序结果是:{sorted(my_dict)}")

print(f"列表对象的反向排序结果是:{sorted(my_list,reverse=True)}")
print(f"元组对象的反向排序结果是:{sorted(my_tuple,reverse=True)}")
print(f"字符串对象的反向排序结果是:{sorted(my_str,reverse=True)}")
print(f"集合对象的反向排序结果是:{sorted(my_set,reverse=True)}")
print(f"字典对象的反向排序结果是:{sorted(my_dict,reverse=True)}")

字符串的大小比较

在程序中,字符串所用的字符串有:① 大小写英文字母(以下图片);② 数字;③ 特殊符号(!、\、|、@、#等)。

以下图片详见链接:https://www.runoob.com/w3cnote/ascii.html

字符串是按位比较,即一位位进行对比,只要一个字符串中有一位比另外一个字符串大,那么整体就大。详细可见以下代码。

# abc比较abd
print(f"abd大于abc,结果:{'abd'>'abc'}")
# a比较ab
print(f"ab大于a,结果:{'ab'>'a'}")
# a大于A
print(f"a大于A,结果:{'a'>'A'}")
# key2大于key1
print(f"key2大于key1,结果:{'key2'>'key1'}")

以上是自己学习过程中总结和练习的内容,如有错误请谅解,定会修改哈,希望能够帮助小伙伴哦!!参考黑马程序员,如有侵权定会删除~谢谢观看啦!本期内容很多,感兴趣的友友可以继续看我的更新哦~

更多推荐