集合

集合

集合是无序的,没有重复的元素,如果有重复的会自动去重。
用{} 或者 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
字符串 字符串
字典 对象
列表、元组 数组
posted @ 2022-06-26 21:32  Gshelldon  阅读(61)  评论(0编辑  收藏  举报