集合
集合
集合是无序的,没有重复的元素,如果有重复的会自动去重。
用{} 或者 set表示,如果直接使用{}是一个字典,空集合的表示方式为 set()
如果里面是键值对就是字典,如果是单个元素就是集合
names = {"frank", "jimi", "bander"}
1、自动去重
>>> names = {"frank", "jimi", "bander" ,"jimi"}
>>> names
{'bander', 'frank', 'jimi'}
2、添加一个元素
>>> names.add("john")
>>> names
{'bander', 'john', 'frank', 'jimi'}
3、删除一个元素
# 因为字典没有顺序所以删除元素是随机的。
>>> names.pop()
'bander'
>>> names
{'john', 'frank', 'jimi'}
# 不能使用这种方法。
>>> names.pop("jimi")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: pop() takes no arguments (1 given)
4、清空集合
>>> names.clear()
>>> names
set()
5、合并两个集合
# 这种方法在words1中添加words2集合,update()方法中只要是传入可迭代对象就行。
>>> words1 = {"A", "B", "C", "D"}
>>> words2 = {"D", "C", "F", "G"}
>>> words1.update(words2)
>>> words1
{'D', 'A', 'F', 'B', 'G', 'C'}
# 这种方法会生成一个新的集合,不会改变原来的集合。
>>> words1 = {"A", "B", "C", "D"}
>>> words2 = {"D", "C", "F", "G"}
>>> words1.union(words2)
{'D', 'A', 'F', 'B', 'G', 'C'}
>>> words1
{'B', 'C', 'D', 'A'}
>>> words2
{'G', 'C', 'D', 'F'}
6、集合的运算
words1 = {"A", "B", "C", "D"}
words2 = {"D", "C", "F", "G"}
# 1、set不支持加法,会直接报错。
# 可以使用减法 A - B ,B的差集。
>>> words1 - words2
{'B', 'A'}
# A & B ,A和B共有的部分,交集。
print(words1 & words2)
>>> words1 & words2
{'C', 'D'}
# A | B,A和B的并集。
print(words1 | words2)
>>> words1 | words2
{'D', 'A', 'F', 'B', 'G', 'C'}
# 交集的补集,去掉两者公共的部分。
print(words1 ^ words2)
>>> words1 ^ words2
{'A', 'F', 'B', 'G'}
7、小练习-去重排序
去重排序[3,6,5,6,4,2,0,9,5,6,7,32,1]
numbers = [3, 6, 5, 6, 4, 2, 0, 9, 5, 6, 7, 32, 1]
# 去重
x = set(numbers)
# 转为list之后再排序,倒序
y = list(x)
y.sort(reverse=True)
print(y)
8、类型转换
set list tuple 内置类
# 内置类 list tuple set
words = ["a", "b", 'c', 'd']
print(type(words))
<class 'list'>
x = set(words)
print(type(x))
<class 'set'>
y = tuple(words)
print(type(y))
<class 'tuple'>
9、内置函数eval
# 函数eval可以把标准python语法的字符串用来执行。
>>> a = 'input("请输入一个字符: ")'
>>> b = eval(a)
请输入一个字符: cdef
>>> b
'cdef'
10、json 函数
# 可以把列表、元组、字典转换为json合适。
# 一种通用的数据格式,可用用于不同开发语言之间的数据交互。
# json可以识别数字。
# 将python的数据类型转换为json格式
persion = {"names":"zhangsan","age": 18,"sex":"feamel"}
x = json.dumps(persion)
print(x)
{"names": "zhangsan", "age": 18, "sex": "feamel"} # 返回的事字符串
# 将json转换为python可识别的格式
y = json.loads(x)
print(type(y))
<class 'dict'>
# json数组转换回来是列表。
python | json |
---|---|
True | true |
False | false |
字符串 | 字符串 |
字典 | 对象 |
列表、元组 | 数组 |