一入python情似海,从此妹纸是路人(四)

时间:2023-01-09 00:53:34

一、集合

1、定义:用大括号包围元素,元素之间用逗号隔开

"特性:无序不重复"
"集合是无序的,不支持下标"

s1 = {10, 20, 30, 30, 50}
print(s1)
输出:{10, 20, 50, 30}

一入python情似海,从此妹纸是路人(四)

2、集合的函数set() 把其他类型转换成集合

lst = [1, 2, 3, 5, 4, 4]
print(set(lst))
输出:{1, 2, 3, 4, 5}

一入python情似海,从此妹纸是路人(四)

3、空字典

d = {}             # 这是字典
print(type(d))
输出:<class 'dict'>

一入python情似海,从此妹纸是路人(四)

4、空集合

s1 = set()
print(s1)
输出:空白

s2 = set('abcde')
print(s2,type(s2))
输出:{'b', 'a', 'e', 'c', 'd'} <class 'set'>

一入python情似海,从此妹纸是路人(四)


常见操作方法
  • add()
s1 = {10, 20}
s1.add(100)
s1.add(10)
print(s1)
输出:{100, 10, 20}

一入python情似海,从此妹纸是路人(四)

  • update() 追加数据 (可以添加列表 集合 字典 元组)

s1 = {1, 2}
s1.update([100])
s1.update('abc')
s1.update({5,6})
print(s1)
输出:{1, 2,[100],'abc',{5,6}}

一入python情似海,从此妹纸是路人(四)

  • remove() 删除元素

s1 = {1,2}
s1.remove(1)
print(s1)
输出:{2}

s1.remove(1)
print(s1)
输出:没有会报错

一入python情似海,从此妹纸是路人(四)

  • discard() 删除元素,不存在不报错

s3 = {10,20}
s3.discard(20)
print(s3)
输出:{10}

# s3.discard(20)
# print(s3)
输出:{10}

一入python情似海,从此妹纸是路人(四)

  • pop() 随机删除

s1 = {1000, 120, 30, 99, 150}
num = s1.pop()
print(num)
输出:随机删除

num2 = s1.pop(1)
print(num2)
输出:随机删除

一入python情似海,从此妹纸是路人(四)

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}

一入python情似海,从此妹纸是路人(四)


二、字典

#格式 键值对的形式 {key1:value1,key2:value2} 一个键值对是一个元素

"特性:一一对应的关系,没有下标"

"字典的key必须是不可变对象:整数 字符串 元组;键必须是唯一的"


dict1 = {'name':'你好','gender':'女','job':'teacher'}
print(dict1)
输出:{'name':'你好','gender':'女','job':'teacher'}

一入python情似海,从此妹纸是路人(四)

字典名[键]

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}


  • del dict1['gender']

dict1 = {'name': 'rose', 'gender': '女', 'job': 'teacher'}
del dict1['gender']
print(dict1)
输出:{'name': 'rose', 'job': 'teacher'}

一入python情似海,从此妹纸是路人(四)

  • dict1.clear() 清空

dict1 = {'name': 'rose', 'gender': '女', 'job': 'teacher'}
dict1.clear()
print(dict1)
输出:{}

一入python情似海,从此妹纸是路人(四)

  • dict1.pop() 元素删除

dict1 = {'name': 'rose', 'gender': '女', 'job': 'teacher'}
dict1.pop('name')
print(dict1)
输出:{'gender': '女', 'job': 'teacher'}

一入python情似海,从此妹纸是路人(四)

查 字典名[键]

dict1 = {'name':'嗯呐','gender':'女','job':'teacher'}
print(dict1['name'])
输出:嗯呐

一入python情似海,从此妹纸是路人(四)

  • len() 求长度,元素的个数

dict1 = {'name': 'rose', 'gender': '女', 'job': 'teacher'}
print(len(dict1))
输出:3

一入python情似海,从此妹纸是路人(四)

  • keys() 查看所有键

dict1 = {'name': 'rose', 'gender': '女', 'job': 'teacher'}
print(dict1.keys())
输出:{'name','gender','job'}

一入python情似海,从此妹纸是路人(四)

  • values() 查看所有值

dict1 = {'name': 'rose', 'gender': '女', 'job': 'teacher'}
print(dict1.values())
输出:{'rose','女','teacher'}

一入python情似海,从此妹纸是路人(四)

  • items() 查看键值对

dict1 = {'name': 'rose', 'gender': '女', 'job': 'teacher'}
print(dict1.items())

一入python情似海,从此妹纸是路人(四)

三、运算符

+加 -减 *乘 /除 **幂 % 求余 // 整除

"变量的定义: 变量名 = 值"


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

一入python情似海,从此妹纸是路人(四)

a = 3
b = 10b **= a # 等效于 b = b**a
print(b)
输出:1000

b //= a # 等效于 b = b//a
print(b)
输出:3

一入python情似海,从此妹纸是路人(四)


运算符的优先级:当一个表达式里有多种运算符时才看优先级
  1. ** 指数(幂次,最高优先级)
  2. * / % // 乘 除 求余 整除
  3. + - 加 减
  4. <= >= > < 比较运算符
  5. == != 比较运算符
  6. = %= /= ... 复合赋值运算符
  7. is is not 身份运算符
  8. in not in 成员运算符
  9. not or and 逻辑运算符



2、 逻辑运算符

条件1 and 条件2 并且

两个条件同时满足时,返回True,只要有一个不满足,返回False

"非零非空即为真"

x = 3
y = 50
print(x and y)
输出:50

一入python情似海,从此妹纸是路人(四)

分析: 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)
输出:

一入python情似海,从此妹纸是路人(四)


not 非

print(not x)