初识python容器

数据容器

1,数据容器:一种可以容纳多份数据的数据类型,数据成为元素,数据可以是任意类型的数据,如字符串,数字,布尔等
2,数据容器有哪些数据容器
list(列表) tuple(元组) str(字符串) set(集合) dict(字典)

列表

1、列表的格式

#变量名称=["元素1","元素2","列表1","元素4"]
#元素类型是不受限制的,元素就是数据
eg:name_list=["wo","xi","huan","ni","520",[1,2,3]]
#定义空变量  变量名称=[]  变量名称=list()

2、列表的索引

name_list=["tom","kali","rose",[1,2,3]]
可以通过索引取出对应位置的元素,从左向右从0开始,从右向左从-1开始
#print(name_list[0])#结果为tom
#print(name_list[-1])#结果是[1,2,3]
#嵌套列表的下的索引
#print(name_list[-1][-1])#结果是3

3、列表的常用方法

(1)函数len()计算的列表的长度

name_list=["tom","kali","rose",[1,2,3]]   
print(len(name_list))#结果为4

(2)查询某元素的下标 index()方法

name_list=["tom","kali","rose",[1,2,3]]   
A=name_list.index("tom) 
print(f"tom在列表中的下标索引为{A})#结果为0
#print(name_list.index(111))#结果会报错,列表中不存在111的元素

(3)修改特定位置的元素值

name_list=["tom","kali","rose",[1,2,3]]
name_list[0]="yy"#将tom修改为yy
name-list[0][2]=[11,22,33]#将tom,kali,rose修改为11,22,33

(4)在指定的下标位置插入元素 ,insert()方法

name_list=["tom","kali","rose",[1,2,3]]   
name_list.insert(1,"yy")#在kali后面插入yy元素

(5)在列表末尾追加元素,append()方法

name_list=["tom","kali","rose",[1,2,3]]   
name_list.append("yy")#在[1,2,3]后面添加元素yy

(6)在列表末尾追加一个列表,extend()方法

name_list=["tom","kali","rose",[1,2,3]]   
name_list1=["toms","kalis","roses",[1,2,3s]]   
name_list.extend(name_list1)#结果就是将name-list1的元素添加到name_list中

(7)删除列表中元素的删除 del关键字方法 pop()方法 remove()方法

A=["tom","kali","rose",[1,2,3]]
del A[0]#删除了tom 
A.pop(0)#删除了tom并且取出了tom,并且可以赋值给变量
A.remove("tom")#通过名称进行删除,删除相同名称的第一个元素
A.clear()#清空A整个字典

(8)统计某个元素在列表中的数量count()方法

A=["tom","kali","rose","kali","kali",[1,2,3]]
b=A.count(kali)#kali在A中出现的次数

(9)给列表中的元素进行从小到大排序sort()方法和倒置排序reversed()方法

A=["tom","kali","rose","kali","kali",[1,2,3]]
A.sort()#给列表进行大小排序#使用sort方法时必须列表元素都是数字才可以
A.reversed()#进行倒置排序

4、列表的循环遍历

(1)while和for循环遍历

#while循环遍历
def add()
    list=[1,2,3,4,5,6,]
    index=0
    while index<len(list):
      a=list[index] 
      print("a")
    index+=1
#for循环的遍历
def add()
   list=[1,2,3,4,5,6]
   for i in list:
       print(i)
add()

元组

1、元组的定义

1,元组与列表的区别:元组和列表都是数据容器,列表可以修改数据,但是元组不可以修改数据,但是可以修改里面嵌套的列表或者元组

2,元组的定义

#元组的定义格式:元组名=(元素1,元素2,元素3,元素4)
#空元组的定义 元组名=()
#注意点,当元组里面只有一个元素时,必须在后面加上,号,否则就不是元组类型 a=("hello",)

3,元组内元素和列表一样不受类型的限制,可以嵌套元组,列表

2、元组的常用方法

1,通过下标索引输出元素

a=(1,2,3,4,5,6,7,8,9)  
print(a[0])#结果为1

2,由于元组不可修改,所以不能增删

#index()方法查看元素的下标索引
a=(1,2,3,4,5,6,7,8,9)  
a.index(3)#查看3元素的下标索引
#count()查看元素在元组中出现的次数
a.count(2)#查看2在元组中的出现的次数
#len()方法查看元组的长度
len(a)#结果是9

3、元组的遍历

while循环
a=(1,2,3,4,5,6,7,8,9)
index=0
while index<len(a):
      a[index]#取出元素
      print(f"a元组的元素有{a[index]}")
      index+=1
for循环
a=(1,2,3,4,5,6,7,8,9)
for i in a:
    print(f"a元组中的元素有{i}")

字符串

1、字符串的定义

字符串时字符的容器,同时支持通过下标索引查找字符,和元组一样,不允许修改字符串里面的字符

2、字符串的常用方法

(1)字符串的替换

#通过下标索引取出相应的字符
my_str="wxhgnzyy"
print(my_str[0])#输出w字符
#通过字符查找该字符的下标索引
my_str.index("y")#输出结果是6
my_str.count("y")#统计字符y在字符串中出现的次数
len(my_str)#统计字符串的长度
#字符串的替换replace()方法
new my_str=my_str.replace("zyy","zbx")#输出结果是"wxhgnzbx"

(2)字符串的分割.split()方法

my_str="wx1hg1nz1yy"
my_str.split("1")#将字符串以字符1进行切分,输出结果是"wx","hg","nz","yy"

(3)字符串的规整操作,取出前后的空格

my_str="  wxhgnzyy  "
new my_str=my_str.strip()#去除前后的空格,这里没有传入参数
new my_str=my_str.strip("yy")#取出字符串中的yy字符

(4)字符串的遍历

while循环
def str():
    my_str="wx1hg1nz1yy"
    index=0
    while index<len(my_str):
        a=my_str[index]#将index的设置以列表的形式输出
        print(a)
        index+=1
        print(f"字符串my_str的元素有{a}")
str()
for循环遍历
my_str="wx1hg1nz1yy"
for i in my_str:
    print(f"字符串{my_str}的元素有{i}")

3、数据容器的切片

(1)语法:序列[起始下标:结束下标:步长]

my_list=[0,1,2,3,4,5,6,7]
a=my_list[1:4]#结果为1,2,3,不包括4
a=my_list[:]#结果为1,2,3,4,5,6,7
a=my_list[::2]#结果是0,2,4,6,

集合

1、集合的定义

1,列表list[],元组(),集合{}三种的关系

列表可以修改,支持重复元素

元素不可以修改,支持重复元素

元素可以修改,和列表的方法大同小异,集合不支持重复的元素

my_set={"aaa","bbb","ccc","ddd"}
#空集合的定义,步允许重复,内容是无序
a=set()或者a={}

2、集合常用的使用方法

(1)由于集合是无序的,所以不支持下标索引查找元素

(2)添加新元素 add()方法

my_set={"aaa","bbb","ccc","ddd"}
my_set.add("eee")#添加元素"eee",如果添加相同的元素,会自动去重
#add()方法只能用于集合,用于列表会出错

(3)删除元素 remove()方法 pop()方法 clear()方法

my_set=["aaa","bbb","ccc","ddd"]
my_set.remove("aaa")
print(my_set)
#my_set.pop()随机取出一个元素
my_set.clear()#清空集合

(4)取两个集合的差集,产生一个差集 difference() 消除差集difference_update()方法

set1={1,2,3}
set2={1,5,6}
set3=set1.difference(set2)#输出结果为2,3,有点类似于离散数学的差集
set1.difference_update(set2)#消除和set2内相同的元素,set1发生变化,set2不发生变化

(5)两个集合的合并(自动去重)union()

set1={1,2,3}
set2={1,5,6}
set3=set1.union(set2)#结果是1,2,3,5,6#会自动去重
len(sat1)#统计集合set1的元素数量

3、集合的遍历

set1={1,2,3,4,5,6,7,8}
for i in set1:
    set1.add(i)
print(f"集合中的元素有{set1}")

字典

1、字典的定义

1,可以通过key找到对应的value

2,字典中的key不可以重复,如果重复会报错

(1)使用{}来定义,但是与集合不同的是,集合内放的是单个数据,但是字典中放的是{key:value}的键值对

my_dict={"zbx":"nan","zxb":"nu"}
#定义空的字典
my_dict={}或者dict()

2、字典的常用方法

(1)在字典中获取数据,不能通过下标索引,只能通过key找到value

my_dict={"zbx":"122","zqw":"123"}
a=my_dict["zbx"]#通过key(zbx)去获取它对应的value的值

(2)字典的嵌套使用(字典中的key和value)是任意数据类型(key不可为字典)

my_dit={"aa":{"语文":"66","数学":"99"}}
my_dit["aa"]["语文"]#取到了aa的语文成绩为66

(3)新增字典的元素(如果key存在,就修改,如果没有就新增)

my_dict={"zbx":"122","zqw":"123"}
my_dict["zbx":"221"]#修改zbx对应的value值,输出为221
my_dict["zyy":"122"]#新增元素

(4)删除元素 pop()方法

my_dict={"zbx":"122","zqw":"123"}
my_dict.pop("zbx")#删除zbx元素
my_dict.clear()#清空字典
my.keys()#获取字典的全部key
my_value()#获取全部的value
my_items()#获取全部的键值对

(5)字典的遍历

my_dict={"zbx":"122","zqw":"123"}
for i in my_dict:
    print(i)
#输出所有的key

数据容通用操作

(1)通用操作
1,都支持for循环遍历
2,都支持len() max() min()函数

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}
# 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)}")
#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)}")
# 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)}")

3,5种容器类型都支持相互的类型转换

#转换为列表
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)}")
#转换为元组
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)}")
# 类型转换: 容器转字符串
print(f"列表转字符串的结果是:{str(my_list)}")
print(f"元组转字符串的结果是:{str(my_tuple)}")
print(f"字符串转字符串结果是:{str(my_str)}")
print(f"集合转字符串的结果是:{str(my_set)}")

4,容器的通用排序

#从小到大进行排序
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)}")
posted @ 2024-07-16 21:27  Gsupl.落浅~  阅读(2)  评论(0编辑  收藏  举报