Python容器

一、列表

列表的方法

        1.列表.append(元素)

                向列表中追加一个元素

        2.列表.extend(容器)

                将该容器的内容添加到列表尾处

        3.列表.insert(下标,元素)

                在指定下标处,插入指定元素

        4.del 列表[下标]

                删除指定下标元素

        5.列表.pop(下标)

                删除指定下标元素

        6.列表.remove(删除)

                从前向后,删除该元素的第一个

        7.列表.clear()

                清空列表

        8.列表.count(元素)

                统计该元素出现的次数

        9.列表.index(元素)

                查找指定元素的下标,若找不到则报错

        10.len(列表)

                统计容器的元素个数

"""
数据容器列表的常见操作
"""
my_list = ['周杰伦','林俊杰','五月天','邓紫棋']
print(my_list)
print(type(my_list))

# 1.向列表中追加一个元素
my_list.append('苏打绿')
print(f"添加新元素后的列表是:{my_list}")

# 2.添加一个容器
new_my_list = ['吴青峰','张杰']
my_list.extend(new_my_list)
print(f"添加一个容器后的列表是:{my_list}")

# 3.在指定下标处插入指定元素
my_list.insert(1,'hello')
print(f"在1处插入指定元素后的列表是:{my_list}")

# 4.删除指定下标元素
# 4.1 用del 列表[下标]
del my_list[1]
print(f"删除1处指定元素后的列表是:{my_list}")

# 4.2 用列表.pop(下标)
my_list.pop(1)
print(f"删除1处指定元素后的列表是:{my_list}")

# 5.删除某个元素的第一个匹配项
my_list.append('周杰伦')
print(my_list)
my_list.remove("周杰伦")
print(f"删除第一个匹配项后的列表是:{my_list}")

# 6.清空列表
my_list.clear()
print(f"清空列表后的列表是:{my_list}")

# 7.统计某个元素出现的个数
my_list = ["五月天","五月天","周杰伦"]
num = my_list.count("五月天")
print(f"五月天的个数是{my_list}")

# 8.查找指定元素的下标
my_list = ["五月天","五月天","周杰伦"]
print(f"周杰伦的下标是:{my_list.index("周杰伦")}")

# 9.统计容器内元素的个数
my_list = ["五月天","五月天","周杰伦"]
print(f"容器内的所有元素是{len(my_list)}个")

# 10.列表的遍历
# 10.1 while循环遍历
my_list = ["五月天","五月天","周杰伦"]
index = 0
while index < len(my_list):
    element = my_list[index]
    print(f"列表的元素:{element}")
    index += 1
# 10.2 for循环遍历
for element in my_list:
    print(f"列表的元素:{element}")


"""
元组和列表唯一的区别就是存储的元素不可以修改

# 定义元组字面量
    (元素,元素,...,元素)
# 定义元组变量
变量名称 = (元素,元素,...,元素)

# 定义空元组
变量名称 = ()
变量名称 = tuple()
"""

# 查找元组某个数据,返回该数据的下标
t1 = ("Jack","Bob","Erik")
index = t1.index("Jack")
print(f"Jack的下标是:{index}")

# 统计某个元素的出现次数
t1 = ("Jack","Jack","Bob","Erik")
num = t1.count("Jack")
print(f"Jack的出现次数是{num}次")

# 统计元组的所有元素个数
t1 = ("Jack","Jack","Bob","Erik")
num = len(t1)
print(f"t1中的元素个数是{num}个")

# 元组的遍历:while
t1 = ("五月天","周杰伦","邓紫棋")
index = 0
while index < len(t1):
    print(f"元组中的元素有:{t1[index]}")
    index +=1

# 元组的遍历: for
t1 = ("五月天","周杰伦","邓紫棋")
for element in t1:
    print(f"元组中的元素有:{element}")

# 元组的内容不可以修改,否则会报错
# 但是元组中的列表里的元素可以修改
t2 = ("五月天","五月天",["五月天","五月天"])
t2[2][1] = "林俊杰"
print(t2)





"""
# 字符串是数据容器的一员
# 字符串同元组一样不可以修改
# 故要修改字符串,只能得到一个新的字符串

"""

# 通过下标索引取值
my_str = "I love love python"
value1 = my_str[-18]
value2 = my_str[0]
print(f"字符串{my_str}下标为0的元素是{value2},下标为-18的元素是{value1}")

# index方法
my_str = "I love love python"
value = my_str.index("love")
print(f"字符串中love的起始下标是:{value}")

# replace方法:字符串.replace(字符串1,字符串2)
my_str = "I love love python"
new_my_str = my_str.replace("love","hate")
print(f"将字符串{my_str}替换后得到{new_my_str}")

# split方法
# split切分后是得到列表
my_str = "I love love python"
my_str_list = my_str.split(" ")
print(f"将字符串{my_str}进行split切分后得到:{my_str_list},类型是{type(my_str_list)}")

# strip方法 规整操作
my_str = "  I love love python  "
new_my_str = my_str.strip()
print(f"字符串{my_str}规整后得到{new_my_str}")

# 统计字符串中某字符串的出现次数
my_str = "I love love python"
count = my_str.count("love")
print(f"字符串中love的个数是{count}个")

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

# for循环

"""
集合
"""

# 定义集合字面量
# {元素,元素,...,元素}
# 定义集合变量
# 变量名称 = {元素,元素,...,元素}
# 定义空集合
# 变量名称 = set()

# 集合是无序的,且是不重复的,故集合是不支持下标索引访问的
my_set = {"五月天","周杰伦","林俊杰"}
print(f"现在的集合是:{my_set},类型是{type(my_set)}")

# 添加新元素 语法:集合.add(元素)
my_set.add("苏打绿")
print(f"添加元素后的集合是:{my_set},类型是{type(my_set)}")

# 移除元素 语法:集合.remove(元素)
my_set.remove("林俊杰")
print(f"删除元素后的集合是:{my_set},类型是{type(my_set)}")

# 随机取出一个元素 语法:集合.pop()
element = my_set.pop()
print(f"随机取出的一个元素是:{element},类型是{type(element)}")

# 清空集合 语法:集合.clear()
my_set.clear()
print(f"清空后的集合是:{my_set},类型是{type(my_set)}")

# 取2个集合的差集 语法:集合1.difference(集合2),取出集合1有的集合2没有的
# 得到一个新集合,不改变集合1和集合2
my_set = {"五月天","周杰伦","林俊杰"}
your_set = {"五月天","陈奕迅","许嵩"}
new_set = my_set.difference(your_set)
print(f"新集合是:{new_set},类型是{type(new_set)}")

# 消除2个集合的差集 语法:集合1.difference_update(集合2),在集合1内删除和集合2相同的元素
# 集合1被修改,集合2不变
new_set = my_set.difference_update(your_set)
print(f"my集合是:{my_set},类型是{type(my_set)}")
print(f"新集合是:{new_set},类型是{type(new_set)}")

# 2个集合合并为1个 语法:集合1.union(集合2)
# 得到新集合,集合1和集合2不变
my_set = {"五月天","周杰伦","林俊杰"}
your_set = {"五月天","陈奕迅","许嵩"}
new_set = my_set.union(your_set)
print(f"新集合是:{new_set},类型是{type(new_set)}")

# 统计集合元素数量len()
my_set = {"五月天","周杰伦","林俊杰"}
print(f"集合内的元素数量是{len(my_set)}个")

# 集合的遍历
for element in my_set:
    print(f"集合内的元素有:{element}")


"""
#序列是指:内容连续、有序,可使用下标索引的一类数据容器
列表、元组、字符串均可以视为序列

#序列的常用操作:切片
切片,即从一个序列中取出一个子序列

#语法:序列[起始下标:结束下标:步长]
起始下标和结束下标(不含)留空意思是从头开始和截止到最后一个元素
步长为负数,代表反向取

# 这个操作不会影响序列本身,而是得到一个新的序列
"""


"""
# 不支持下标索引
# 每一份数据是键值对
# 由Key获得value,key不可以重复
# value可以修改
# 支持for循环,不支持while循环

"""

# 定义字典字面量
# {key:value,key:value,....,key:value}

# 定义字典变量
# my_dict = {key:value,key:value,....,key:value}

# 定义空字典
# my_dict ={}
# my_dict = dict()

# 定义字典
my_dict = {"Java":80,"C++":90,"Python":99}
print(f"字典的内容是:{my_dict},类型是:{type(my_dict)}")

# 定义重复的字典
my_dict = {"Java":80,"Java":89,"C++":90,"Python":99}
print(f"输出存在重复Key的字典:{my_dict}")

# 从字典中基于key获取value
score = my_dict["Java"]
print(f"Java的得分是{score}")

# 定义嵌套字典
# 字典的key和value可以是任意数据类型(key不可以是字典)
# 例子,记录学生各科考试成绩
student_score_dict = {"Erik":{"Java":99,"Python":98,"C++":97},
                      "Bob":{"Java":88,"Python":87,"C++":87},
                      "Ouyang":{"Java":100,"Python":100,"C++":100}
}
print(f"学生各科的考试成绩是:{student_score_dict}")

# 从嵌套字典中获取数据
score = student_score_dict["Ouyang"]["Python"]
print(f"Ouyang的Python成绩是{score}分")

# 新增元素或是更新元素
# 新增元素
student_score_dict["Tom"] = {"Java":66}
print(f"新增Tom成绩后的字典是{student_score_dict}")

# 更新元素
student_score_dict["Tom"]["Java"] = 76
print(f"更新Tom成绩后的字典是{student_score_dict}")

# 删除元素 语法:字典.pop(元素)
student_score_dict.pop("Tom")
print(f"删除Tom成绩后的字典是{student_score_dict}")

# 清空元素 语法:字典.clear()
student_score_dict.clear()
print(f"清空后的字典是{student_score_dict}")

# 获取全部的key 语法:字典.keys()
student_score_dict = {"Erik":{"Java":99,"Python":98,"C++":97},
                      "Bob":{"Java":88,"Python":87,"C++":87},
                      "Ouyang":{"Java":100,"Python":100,"C++":100}
}
keys = student_score_dict.keys()
print(f"全部的key是{keys},key的类型是{type(keys)}")

# 遍历字典
# 方式1:获取全部的key来遍历
for key in keys:
    print(f"字典中的key是:{key}")
    print(f"字典中的value是:{student_score_dict[key]}")

# 方式2:直接对字典进行for循环
for key in student_score_dict:
    print(f"字典2中的key是:{key}")
    print(f"字典2中的value是:{student_score_dict}")

# 统计字典内的元素数量 语法:len(字典)
num = len(student_score_dict)
print(f"字典内的元素数量:{num}个")

"""

"""

# len元素个数

# max最大元素

# min最小元素

# 类型转换
# list(容器)    将指定容器转为列表
# tuple(容器)   将指定容器转为元组
# str(容器)     将指定容器转为字符串
# set(容器)        将指定容器转为集合

# 容器通用排序功能,排序的结果是列表对象
# 语法:sorted(容器)
  • 22
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值