学习python仅收藏此一篇就够了(集合,字典)

发布时间:2024年01月11日

集合

集合的定义:

变量名称 = {元素,元素}

变量名称 = set()

首先,因为集合是无序的,所以集合不支持,下标索引访问。

但是集合和列表一样,是允许修改的。

#定义一个集合
my_set = {"python", "java", "go", "php", "shell"}
empty = set()
集合的特点:
  • 可以容纳多个数据

  • 可以容纳不同类型的数据

  • 数据是无序存储的

  • 不允许重复数据存在

  • 可以修改

  • 支持for循环

集合的操作
  • 添加新元素

语法:集合.add(元素)

结果:集合本身被修改,添加了新元素

my_set = {"python", "java", "go", "php", "shell"}
my_set.add("c")
print(my_set) #{'python', 'c', 'shell', 'php', 'go', 'java'}
  • 移除元素

语法:集合.remove(元素) ,将指定元素,从集合内移除

my_set.remove("python")
print(my_set) #{'java', 'c', 'shell', 'go', 'php'}
  • 从集合中随机取出元素

语法:集合.pop(),从集合中随机取出一个元素

my_set.pop()
print(my_set) #{'java', 'go', 'c', 'php'}
  • 清空集合

语法:集合.clear(),功能,清空集合

my_set.clear()
print(my_set)
  • 取出2个集合的差集

语法:集合1.difference(集合2),功能:取出集合1和集合2的差集,集合1有集合2没有,得到一个新的集合,集合1和集合2不变。

set1 = {1,2,3}
set2 = {1,4,5}
set3 = set1.difference(set2)
print(set3) #{2, 3}
  • 消除2个集合的差集

语法:集合1.difference_upate(集合2)

功能:对比集合1和集合2,在集合1内,删除和集合2相同的元素

结果:集合1被修改,集合2不变

set1.difference_update(set2)
print(set1) #{2, 3}
print(set2) #{1, 4, 5}
  • 2个集合合并为一个

语法:集合1.union(集合2)

功能:将集合1和集合2组合成新集合

set1 = {1,2,3}
set2 = {1,4,5}
set4 = set1.union(set2)
print(set4) #{1, 2, 3, 4, 5}
  • 统计集合元素的数量
print(len(set1))
print(len(set2))
print(len(set4))
集合的遍历

集合不支持下标索引,不能使用while循环

for i in set4:
    print(i)

字典

字典的特点
  • 可以容纳多个数据

  • 可以容纳不同类型的数据

  • 每一份数据是keyvalue键值对

  • 可以通过key获取到value,key不可重复

  • 不支持下标索引

  • 可以修改

  • 支持for循环,不支持while循环

字典的定义

同样使用{},不过存储的元素是一个个的:键值对

#定义字典
dict = {"wyx": 99, "sxx": 60, "第三者": 100}
dict2 = {}

#从字典中基于key获取value
s = dict["wyx"]
print(s) #99

#定义嵌套字典
stu_dict = {
    "wyx":{
        "语文":80,
        "数学":90,
        "英语":88
    },
    "sxx":{
        "语文": 23,
        "数学": 44,
        "英语": 55
    }
}
print(stu_dict)
#{'wyx': {'语文': 80, '数学': 90, '英语': 88}, 'sxx': {'语文': 23, '数学': 44, '英语': 55}}
stus = stu_dict["sxx"]["语文"]
print(stus) #23
字典的常用操作
  • 新增元素

语法:字典[key] = value,结果:字典被修改,新增了元素

dict = {"wyx": 99, "sxx": 60}
dict["py"] = 88
print(dict) #{'wyx': 99, 'sxx': 60, 'py': 88}
  • 更新元素

语法:字典[key] = value, 结果:字典被修改,元素被更新

#{'wyx': 99, 'sxx': 60, 'py': 88}
dict["py"] = 77
print(dict) #{'wyx': 99, 'sxx': 60, 'py': 77}
  • 删除方法

语法:字典.pop(key), 结果:获得指定key的value,同时字典被修改,指定key的数据被删除

dict = {"wyx": 99, "sxx": 60}
value = dict.pop("wyx")
print(value) #99
print(dict) #{'sxx': 60}
  • 清空元素

语法:字典.clear(),结果:字典被修改,元素被清空

dict = {"wyx": 99, "sxx": 60}
dict.clear()
print(dict)
  • 获取全部key

语法:字典.keys(), 结果:得到字典中全部的key

dict = {"wyx": 99, "sxx": 60}
keys = dict.keys()
print(keys) #dict_keys(['wyx', 'sxx'])
字典的遍历
for循环遍历
dict = {"wyx": 99, "sxx": 60}
keys = dict.keys()
print(keys) #dict_keys(['wyx', 'sxx'])

for key in keys:
    print(f"字典的key是{key}")
    print(f"字典的value是{dict[key]}")
#字典的key是wyx
字典的value是99
字典的key是sxx
字典的value是60
for key in dict:
    print(key)
    print(dict[key])
#wyx
99
sxx
60

数据容器的总结对比

数据容器的分类

  • 是否支持下标索引

  1. 支持:列表,元组,字符串-序列类型

  2. 不支持:集合,字典-非序列类型

  • 是否支持重复元素

  1. 支持:列表,元组,字符串-序列类型

  2. 不支持:集合,字典-非序列类型

  • 是否可以修改

  1. 支持:列表,集合,字典

  2. 不支持:元组,字符串

应用场景分析·

  • 列表:一批数据,可修改,可重复的存储场景

  • 元组:一批数据,不可修改,可重复的存储场景

  • 字符串:一串字符串的存储场景

  • 集合:一批数据,去重存储场景

  • 字典:一批数据,可用key检索value的存储场景

容器的排序功能

语法:sorted(容器,[reverse=true])

dict = {"wyx": 99, "sxx": 60}
print(sorted(dict)) #['sxx', 'wyx']
print(sorted(dict,reverse=True)) #将结果反转['wyx', 'sxx']

文章来源:https://blog.csdn.net/m0_66011019/article/details/135539375
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。