一、集合
1、定义:用大括号包围元素,元素之间用逗号隔开
"特性:无序不重复"
"集合是无序的,不支持下标"
s1 = {10, 20, 30, 30, 50}
print(s1)
输出:{10, 20, 50, 30}
2、集合的函数set() 把其他类型转换成集合
lst = [1, 2, 3, 5, 4, 4]
print(set(lst))
输出:{1, 2, 3, 4, 5}
3、空字典
d = {} # 这是字典
print(type(d))
输出:<class 'dict'>
4、空集合
s1 = set()
print(s1)
输出:空白
s2 = set('abcde')
print(s2,type(s2))
输出:{'b', 'a', 'e', 'c', 'd'} <class 'set'>
常见操作方法
增
s1 = {10, 20}
s1.add(100)
s1.add(10)
print(s1)
输出:{100, 10, 20}
- update() 追加数据 (可以添加列表 集合 字典 元组)
s1 = {1, 2}
s1.update([100])
s1.update('abc')
s1.update({5,6})
print(s1)
输出:{1, 2,[100],'abc',{5,6}}
删
s1 = {1,2}
s1.remove(1)
print(s1)
输出:{2}
s1.remove(1)
print(s1)
输出:没有会报错
s3 = {10,20}
s3.discard(20)
print(s3)
输出:{10}
# s3.discard(20)
# print(s3)
输出:{10}
s1 = {1000, 120, 30, 99, 150}
num = s1.pop()
print(num)
输出:随机删除
num2 = s1.pop(1)
print(num2)
输出:随机删除
查
s1 = {1, 2, 3}
print(10 in s1)
输出:False
交集和并集 & |
s1 = {1, 2, 3, 4}
s2 = {3, 4, 5, 6}
print(s1 & s2) # 求相同的部分
输出:{3,4}
print(s1 | s2) # 所有的
输出:{1,2,3,4,5,6}
print(s1 - s2) # 差集
输出:{1,2}
二、字典
#格式 键值对的形式 {key1:value1,key2:value2} 一个键值对是一个元素
"特性:一一对应的关系,没有下标"
"字典的key必须是不可变对象:整数 字符串 元组;键必须是唯一的"
dict1 = {'name':'你好','gender':'女','job':'teacher'}
print(dict1)
输出:{'name':'你好','gender':'女','job':'teacher'}
查 字典名[键]
print(dict1['name'])
输出:你好
改(增、改 键有则覆盖,键无则增加)
dict1['name'] = 'rose'
print(dict1)
输出:{'name': 'rose', 'gender': '女', 'job': 'teacher'}
增
dict1['id'] = 110
print(dict1)
输出:{'name': 'rose', 'gender': '女', 'job': 'teacher', 'id': 110}
删
dict1 = {'name': 'rose', 'gender': '女', 'job': 'teacher'}
del dict1['gender']
print(dict1)
输出:{'name': 'rose', 'job': 'teacher'}
dict1 = {'name': 'rose', 'gender': '女', 'job': 'teacher'}
dict1.clear()
print(dict1)
输出:{}
dict1 = {'name': 'rose', 'gender': '女', 'job': 'teacher'}
dict1.pop('name')
print(dict1)
输出:{'gender': '女', 'job': 'teacher'}
查
查 字典名[键]
dict1 = {'name':'嗯呐','gender':'女','job':'teacher'}
print(dict1['name'])
输出:嗯呐
dict1 = {'name': 'rose', 'gender': '女', 'job': 'teacher'}
print(len(dict1))
输出:3
dict1 = {'name': 'rose', 'gender': '女', 'job': 'teacher'}
print(dict1.keys())
输出:{'name','gender','job'}
dict1 = {'name': 'rose', 'gender': '女', 'job': 'teacher'}
print(dict1.values())
输出:{'rose','女','teacher'}
dict1 = {'name': 'rose', 'gender': '女', 'job': 'teacher'}
print(dict1.items())
三、运算符
+加 -减 *乘 /除 **幂 % 求余 // 整除
"变量的定义: 变量名 = 值"
1、复合运算符 符号中间没有空格
c += a 等效于 c = c + a
c *= a 等效于 c = c * a
c -= a 等效于 c = c -a
b = 10
b *= 3 # b = b*3
print(b)
输出:30
a = 3
b = 10b **= a # 等效于 b = b**a
print(b)
输出:1000
b //= a # 等效于 b = b//a
print(b)
输出:3
运算符的优先级:当一个表达式里有多种运算符时才看优先级
- ** 指数(幂次,最高优先级)
- * / % // 乘 除 求余 整除
- + - 加 减
- <= >= > < 比较运算符
- == != 比较运算符
- = %= /= ... 复合赋值运算符
- is is not 身份运算符
- in not in 成员运算符
- not or and 逻辑运算符
2、 逻辑运算符
条件1 and 条件2 并且
两个条件同时满足时,返回True,只要有一个不满足,返回False
"非零非空即为真"
x = 3
y = 50
print(x and y)
输出:50
分析: x and y
当x为真时,
如果y为真,整个表达式为真;
如果y为假,整个表达式为假;
所以:当x为真时,整个表达式取决于y(=y的值);
当x为假时,整个表达式为假(=x)
条件1 or 条件2 或 一真即真,两假为假
当x为真,整个表达式为真(=x)
当x为假时,
如果y为假时,整个表达式为假;
如果y为真时,整个表达式为真;
所以当x为假时,整个表达式取决于y(=y)
x = 88
y = 20
print(x or y)
输出:
not 非