74-字典之获取操作(get,items,values,keys)
"# values: 取出字典中所有值,保存到列表中
result = dict2.values()
print(result)
# 求所有学生考试成绩平均分
for score in dict2.values():
print(score)
scores = dict2.values()
totle = sum(scores)
avg = totle/len(scores)
print(avg)"
"# keys(): 获取字典中的所有key键 (键值对)
names = dict2.keys()
print(names)
for name in names:
print(name)" "# 找人: in 也可以用于字典操作 用于判断元素有没有在字典的key中出现
# 8 in list1
print('王五' in dict2)
'''
1. 根据key获取值,如果key在字典中没有存在则报出keyError
dict[key] ----> value
2. 字典的内置函数:
get(key) ----> value 如果取不到值则不会报错,则返回None
get(key,default) ---> value 如果能够取到值则返回字典中的值,如果取不到则返回default的值
items()---> list
keys() ---> list
values() ---> list
'''
# print(dict2['赵飞'])
print(dict2.get('赵飞',99))"
75-字典之删除操作 "# 删除:
list1=[3,7,9,0]
del list1[1]
print(list1)
dict1 = {'张三':100,'李四':100,'王五':89,'赵柳':99}
del dict1['王五']
print(dict1)
# del dict1['haha'] # keyError
"dict.pop(key[,default])
"# 字典的内置函数:删除
# dict1.remove('李四') 不存在 报错的
# pop(key[,default]) ----> 根据key删除字典中的键值对,返回值是 只要删除成功,则返回键值对的值value
#pop的默认值,往往是在删除的时候没有找到对应的key,则返回default默认值" "
result = dict1.pop('李四','80')
print(result)
result = dict1.pop('张小三','字典中没有此键')
print('======>',result)
print(dict1)
print('*'*30)"
"dict.popitem()
popitem():随机删除字典中键值对(一般是从末尾删除元素)
dict1 = {'张三':100,'李四':100,'王五':89,'赵柳':99}
result = dict1.popitem()
print(result)
print(dict1)
result = dict1.popitem()
print(result)
print(dict1)"
dict.clear() "# clear() 同列表的clear()
dict1.clear()
print(dict1)"
其他的内置函数:
" "update() []+[] 合并操作
fromkeys(seq,[default]) ---->将seq转成字典的形式 如果没有指定默认的value则用None
new_dict = dict.fromkeys(list1)---》 {'aa': None, 'bb': None, 'cc': None}
---> 如果指定default,则用default替代None这个value值
new_dict = dict.fromkeys(list1,10) ---》 {'aa': 10, 'bb': 10, 'cc': 10}" "
# dict1 = dict1+dict2 报错的
# print(dict1)
dict1= {0:'tom',1:'jack',2:'lucy'}
dict2 = {0:'lily','4':'ruby'}
result = dict1.update(dict2)
print(result)
print(dict1)
list1 = ['aa','bb','cc']
new_dict = dict.fromkeys(list1,10)
print(new_dict)"
76-回顾 知识检测Week1 "回顾:
数据类型:
字符串:
声明:
''
""""
''' '''
符号:
+
*
in
not in
is
not is
[]
获取字符串元素:
s = 'hello'
s[0] ~ s[len(s)-1]
切片:
s[start:end[:step]] 包前不包后
内置函数:
lower() upper()
replace()
split()
find() rfind() lfind()
strip() lstrip() rstrip()
join()
isalpha() isdigit()
...
‘容器’:
列表: list 特点: 保存多个元素,元素有顺序。可以通过下标找到对应的元素。
可以增加,删除,修改元素,查询
内置函数:
append extend insert
remove pop clear , del
sort reverse index count
元组: tuple 特点: 保存多个元素。 不可以增加,删除,修改元素。但是可以查询元素
内置函数: index count
支持下标操作: t= (1,2,3)
t[0],t[1:]
字典: dict 特点: 键值对保存元素。 键是唯一的,而值不唯一。 可以支持对键值对的增删改查
内置函数:
增加(修改)键值对: dict1={} dict1[key]=value
删除键值对: dict1.pop() dict1.popitem() dict1.clear()
查询: items() values() keys()
集合: set 关键字 无序的不重复的元素
作用: 不重复特点
77-集合操作之添加和删除 "# 不重复特点:
list1 = [3,5,8,9,1,8,4,2,5,8,9]
# 声明集合: set
s1 = set() # 创建空集合,只能使用set()
s2 = {1,3,7} # 字典: {key:value,key:value,....} 集合 {元素1,元素2,元素3,...}
print(type(s1))
print(type(s2))
#应用: 如果将一个列表快速去重 set()
s3 = set(list1)
print(s3) # {1,2,3,4,5,...}"
"# 1. 增加 s1 = set()
s1.add('hello')
s1.add('小猪佩奇')
s1.add('lucy')
print(s1)
# add() 添加一个元素
# update() 可以添加多个元素,
t1 = ('林志玲','言承旭')
s1.update(t1) # {'hello','林志玲',....}
print(s1)
s1.add(t1)
print(s1)"
"#2. 删除 remove 如果元素存在则删除,不存在则报错keyError pop 随机删除(一般删除第一个元素) clear。。。
# dicard() 类似remove() 在移除不存的元素的时候不会报错。
s1.remove('言承旭')
print(s1)
# s1.remove('道明寺')
# print(s1)
s1.pop()
print(s1)
s1.pop()
print(s1)
s1.clear() # 清空
print(s1)"
练习:
1. 产生了10个1~20的随机数,去除里面的重复项
2. 键盘输入一个元素,将此元素从不重复的集合中删除
import random
# list1= []
# # set1 = set()
# for i in range(10):
# ran = random.randint(1,20)
# list1.append(ran) # [3,5,8,1,1]
# # set1.update(list1) # {3,5,8,1}.update([3,5,8,1,1])
# set1 =set(list1)
# print(list1)
# print(set1)
# num = int(input('输入一个数字:'))
# set1.discard(num)
# print('删除之后结果:',set1)
# 方式二:
# set1= set()
# for i in range(10):
# ran = random.randint(1,20)
# set1.add(ran)
# print(set1)
# num = int(input('输入一个数字:'))
# set1.discard(num)
# print('删除之后结果:',set1)
# 其他:符号操作 "# print(6 in set1)
set2 = {2,3,4,5,6}
set3= {2,3,4,5,6,7,8}
print(set2 == set3) # 判断两个集合中的内容是否相等
# 测试: print(set2 != set3) ??
# (+ * 不支持) - & |
# set4 = set2+set3
# print(set4)
# set5= set2*2
# print(set5)
set4 = set3-set2 #差集 difference()
print(set4)
set5 = set3.difference(set2)
print(set5)"
78-集合之交集并集差集 "# & 交集 intersection()
set6 = set3 & set2
print(set6)
set7 = set3.intersection(set2)
print(set7)"
"# | 并集 union() 联合
set8 = set3 | set2
print(set8)
set9 = set3.union(set2)
print(set9)"
练习:
已知两个列表:
l1 = [5,1,2,9,0,3]
l2 = [7,2,5,7,9]
找出两个列表的不同元素
找出两个列表的共同元素
l1 = [5,1,2,9,0,3]
l2 = [7,2,5,7,9]
s1 = set(l1)
s2 = set(l2)
# 对称差集
result = (s1 | s2) - (s1 & s2)
print(result)
result = s1 ^ s2 # 两个列表中不一样元素 symmetric_difference()
print(result)
79-集合对称差集和总结 " difference_update()
s1 = s1.difference(s2)
print(s1)
相同
s1.difference_update(s2)
intersection_update() 交集并赋值
union_update() 并集并赋值
symmetric_difference_update() 对称差集并赋值" "s1.difference_update(s2)
print(s1)"