Python中集合数据类型的基本概念是什么?

2026-06-11 07:111阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1101个文字,预计阅读时间需要5分钟。

Python中集合数据类型的基本概念是什么?

集合(set)在Python中是一种数据类型,主要利用其自带的特性,其他操作很少使用。Python中集合的关键字是set,也可以用{ }形式表示。集合是一个无序且元素唯一的集合,没有重复的元素。之所以这样说,是因为集合的定义就是如此。

Python中集合数据类型的基本概念是什么?

集合

集合在python中也是一个数据类型,我们只用它自带的特性,其余的操作很少使用

集合在Pyhton中的关键字是set,也是以{}的形式展示 只不过集合是一个没有值得字典,为什么这么说呢??

因为集合中的元素要求是不可变的并且还是唯一的,我们就利用它是唯一来做去重

lst = [1,3,4,112,23,1,3,1,41,12,3,1] print(set(lst)) # 这样就没有重复的元素出现了,我们在将集合抓换成列表 list(set(lst)) # 这样就把没有重复的集合转成列表了 print(list(set(lst)))

集合是无序,可变的数据类型,说到可变我们就知道集合是能够增加和删除等操作的,我们来看看怎么操作
集合定义方式:

set("12345") {1,2,3,4,5} # 将字符串进行迭代添加

set集合增删改查

增加

s = {"刘嘉玲", '关之琳', "王祖贤"} s.add("郑裕玲") print(s) s.add("郑裕玲") # 重复的内容不会被添加到set集合中 print(s) s = {"刘嘉玲", '关之琳', "王祖贤"} s.update("麻花藤") # 迭代更新 print(s) s.update(["张曼?", "李若彤","李若彤"]) print(s)

删除  

s = {"刘嘉玲", '关之琳', "王祖贤","张曼?", "李若彤"} item = s.pop() # 随机弹出?个. print(s) print(item) s.remove("关之琳") # 直接删除元素 # s.remove("??疼") # 不存在这个元素. 删除会报错 print(s) s.clear() # 清空set集合.需要注意的是set集合如果是空的. 打印出来是set() 因为要和 dict区分的. print(s) # set()

修改

# set集合中的数据没有索引. 也没有办法去定位?个元素. 所以没有办法进?直接修改. # 我们可以采?先删除后添加的?式来完成修改操作 s = {"刘嘉玲", '关之琳', "王祖贤","张曼?", "李若彤"} # 把刘嘉玲改成赵本? s.remove("刘嘉玲") s.add("赵本?") print(s)

查询  

# set是?个可迭代对象. 所以可以进?for循环 for el in s: print(el)

常?操作  

s1 = {"刘能", "赵四", "???"} s2 = {"刘科?", "冯乡?", "???"} # 交集 # 两个集合中的共有元素 print(s1 & s2) # {'???'} print(s1.intersection(s2)) # {'???'} # 并集 print(s1 | s2) # {'刘科?', '冯乡?', '赵四', '???', '刘能'} print(s1.union(s2)) # {'刘科?', '冯乡?', '赵四', '???', '刘能'} # 差集 print(s1 - s2) # {'赵四', '刘能'} 得到第?个中单独存在的 print(s1.difference(s2)) # {'赵四', '刘能'} # 反交集 print(s1 ^ s2) # 两个集合中单独存在的数据 {'冯乡?', '刘能', '刘科?', '赵四'} print(s1.symmetric_difference(s2)) # {'冯乡?', '刘能', '刘科?', '赵四'} s1 = {"刘能", "赵四"} s2 = {"刘能", "赵四", "???"} # ?集 print(s1 < s2) # set1是set2的?集吗? True print(s1.issubset(s2)) # 超集 print(s1 > s2) # set1是set2的超集吗? False print(s1.issuperset(s2))

set集合本?是可以发?改变的. 是不可hash的. 我们可以使?frozenset来保存数据. frozenset是不可变的. 也就是?个可哈希的数据类型

s = frozenset(["赵本?", "刘能", "???", "长桂"]) dic = {s:'123'} # 可以正常使?了 print(dic)

集合其他操作

```python & #交集 | #并集 - #差集 ^ #对称差集 > #父集 < #子集 forzenset()#冻结集合 注意:(列表去重) # lst = [1,2,1,2,4,2,45,3,2,45,2345,] # print(list(set(lst))) ```

最后我们对这些数据类型进行一个总结,我们按照有序,无序,可变,不可变,取值方式来总结

  • 有序:
    • 数字
    • 字符串
    • 列表
    • 元组
  • 无序:
    • 字典
    • 集合
  • 可变数据类型:
    • 列表
    • 字典
    • 集合
  • 不可变数据类型:
    • 字符串
    • 数字
    • 元组
  • 取值顺序:
    • 直接取值 — 数字,布尔值,集合
    • 顺序取值(索引) — 列表,元组,字符串
    • 通过键取值 — 字典

类型转换

元组 => 列表 list(tuple) 列表 => 元组 tuple(list) 列表 => 字符串 str.join(list) 字符串 => 列表 str.split() 转换成False的数据: 0,'',None,[],(),{},set() 都是False

本文共计1101个文字,预计阅读时间需要5分钟。

Python中集合数据类型的基本概念是什么?

集合(set)在Python中是一种数据类型,主要利用其自带的特性,其他操作很少使用。Python中集合的关键字是set,也可以用{ }形式表示。集合是一个无序且元素唯一的集合,没有重复的元素。之所以这样说,是因为集合的定义就是如此。

Python中集合数据类型的基本概念是什么?

集合

集合在python中也是一个数据类型,我们只用它自带的特性,其余的操作很少使用

集合在Pyhton中的关键字是set,也是以{}的形式展示 只不过集合是一个没有值得字典,为什么这么说呢??

因为集合中的元素要求是不可变的并且还是唯一的,我们就利用它是唯一来做去重

lst = [1,3,4,112,23,1,3,1,41,12,3,1] print(set(lst)) # 这样就没有重复的元素出现了,我们在将集合抓换成列表 list(set(lst)) # 这样就把没有重复的集合转成列表了 print(list(set(lst)))

集合是无序,可变的数据类型,说到可变我们就知道集合是能够增加和删除等操作的,我们来看看怎么操作
集合定义方式:

set("12345") {1,2,3,4,5} # 将字符串进行迭代添加

set集合增删改查

增加

s = {"刘嘉玲", '关之琳', "王祖贤"} s.add("郑裕玲") print(s) s.add("郑裕玲") # 重复的内容不会被添加到set集合中 print(s) s = {"刘嘉玲", '关之琳', "王祖贤"} s.update("麻花藤") # 迭代更新 print(s) s.update(["张曼?", "李若彤","李若彤"]) print(s)

删除  

s = {"刘嘉玲", '关之琳', "王祖贤","张曼?", "李若彤"} item = s.pop() # 随机弹出?个. print(s) print(item) s.remove("关之琳") # 直接删除元素 # s.remove("??疼") # 不存在这个元素. 删除会报错 print(s) s.clear() # 清空set集合.需要注意的是set集合如果是空的. 打印出来是set() 因为要和 dict区分的. print(s) # set()

修改

# set集合中的数据没有索引. 也没有办法去定位?个元素. 所以没有办法进?直接修改. # 我们可以采?先删除后添加的?式来完成修改操作 s = {"刘嘉玲", '关之琳', "王祖贤","张曼?", "李若彤"} # 把刘嘉玲改成赵本? s.remove("刘嘉玲") s.add("赵本?") print(s)

查询  

# set是?个可迭代对象. 所以可以进?for循环 for el in s: print(el)

常?操作  

s1 = {"刘能", "赵四", "???"} s2 = {"刘科?", "冯乡?", "???"} # 交集 # 两个集合中的共有元素 print(s1 & s2) # {'???'} print(s1.intersection(s2)) # {'???'} # 并集 print(s1 | s2) # {'刘科?', '冯乡?', '赵四', '???', '刘能'} print(s1.union(s2)) # {'刘科?', '冯乡?', '赵四', '???', '刘能'} # 差集 print(s1 - s2) # {'赵四', '刘能'} 得到第?个中单独存在的 print(s1.difference(s2)) # {'赵四', '刘能'} # 反交集 print(s1 ^ s2) # 两个集合中单独存在的数据 {'冯乡?', '刘能', '刘科?', '赵四'} print(s1.symmetric_difference(s2)) # {'冯乡?', '刘能', '刘科?', '赵四'} s1 = {"刘能", "赵四"} s2 = {"刘能", "赵四", "???"} # ?集 print(s1 < s2) # set1是set2的?集吗? True print(s1.issubset(s2)) # 超集 print(s1 > s2) # set1是set2的超集吗? False print(s1.issuperset(s2))

set集合本?是可以发?改变的. 是不可hash的. 我们可以使?frozenset来保存数据. frozenset是不可变的. 也就是?个可哈希的数据类型

s = frozenset(["赵本?", "刘能", "???", "长桂"]) dic = {s:'123'} # 可以正常使?了 print(dic)

集合其他操作

```python & #交集 | #并集 - #差集 ^ #对称差集 > #父集 < #子集 forzenset()#冻结集合 注意:(列表去重) # lst = [1,2,1,2,4,2,45,3,2,45,2345,] # print(list(set(lst))) ```

最后我们对这些数据类型进行一个总结,我们按照有序,无序,可变,不可变,取值方式来总结

  • 有序:
    • 数字
    • 字符串
    • 列表
    • 元组
  • 无序:
    • 字典
    • 集合
  • 可变数据类型:
    • 列表
    • 字典
    • 集合
  • 不可变数据类型:
    • 字符串
    • 数字
    • 元组
  • 取值顺序:
    • 直接取值 — 数字,布尔值,集合
    • 顺序取值(索引) — 列表,元组,字符串
    • 通过键取值 — 字典

类型转换

元组 => 列表 list(tuple) 列表 => 元组 tuple(list) 列表 => 字符串 str.join(list) 字符串 => 列表 str.split() 转换成False的数据: 0,'',None,[],(),{},set() 都是False