首页 Python基础入门视频教程 Python可变集合和不可变集合的构造方法
pay pay

Python可变集合和不可变集合的构造方法

日期: 二月 14, 2023, 7:36 a.m.
阅读: 443
作者: Python自学网-村长

摘要: 集合:集合是一种无序的,不重复且不可随机访问的元素集合,在概念和运算上和数学中的集合类似,集合分为可变和不可变两种

集合:集合是一种无序的,不重复且不可随机访问的元素集合,在概念和运算上和数学中的集合类似,集合分为可变和不可变两种。

str1 = 'pythonpython'  # 不可变,有序:可以通过下标访问
list1 = [1, 2, 3, 2]  # 可变,有序:可以通过下标访问
tup1 = (1, 2, 3, 2)  # 不可变,有序:可以通过下标访问
dict1 = {'name': 'Tom', 'age': 18, 'love': 'python'}  # 可变,无序:但可以通过键访问
set1 = {'name', 19, 'python'}
# 无序的无法通过下标访问,没有键也不能通过键访问,所以集合无法查询访问
# 可变集合(set):可以进行增,删,改操作
# 不可变集合(frozenset):创建好之后就无法增,删,改,只能查询

一、可变集合的构造

1.直接创建

set2 = {'name', 19, 'python'}
print(set2, type(set2))

2.函数创建

set3 = set(str1)
print(set3, type(set3))
set4 = set(list1)
print(set4, type(set4))
set5 = set(tup1)
print(set5, type(set5))
set6 = set(dict1)
print(set6, type(set6))

3.推导式创建

set7 = set(i for i in range(1, 5))
print(set7, type(set7))

set8 = {i for i in list1}
print(set8, type(set8))

set8 = {i for i in tup1}
print(set8, type(set8))

二、不可变集合构造(与可变集合类似,把set改为frozenset即可)

set3 = frozenset(str1)
print(set3, type(set3))
set4 = frozenset(list1)
print(set4, type(set4))
set5 = frozenset(tup1)
print(set5, type(set5))
set6 = frozenset(dict1)
print(set6, type(set6))
# 推导式也一样
set7 = frozenset(i for i in range(1, 5))
print(set7, type(set7))

三、集合构造注意事项

1.不能直接使用以下方法来构造空集合

set9 = {}
print(type(set9))  # 默认为字典:<class 'dict'>
# 正确方法使用set或者frozenset函数来构造
set9 = set()
set99 = frozenset()

2.集合中不能包含字典和列表这样的可变类型元素

set10 = {'name', 19, [1, 2, 3, 2]}  # 列表不可哈希:TypeError: unhashable type: 'list'

 

原创视频,版权所有,未经允许,切勿转载,违者必究!
回顶部