8、字典集合和文件处理

一、字典类型

======================================基本使用======================================
1、用途:
​
2、定义方式:在{}内用逗号分割开多个元素,每个元素都是key:value的形式
           其中value可以是任意类型,而key必须是不可变类型,通常是字符串类型
dic = {1:111111,33.33:"aaa",(1,2,3):'bbbb'}  # dic = dict(...)
print(dic[(1,2,3)])
​
dict数据类型转换
dic = dict([('name','egon'),('age',18)])
print(dic)
​
dic = dict(name='egon',age=18,gender='male')
print(dic)
​
3、常用操作+内置的方法
优先掌握的操作:
1、按key存取值:可存可取
dic = {'name': 'egon', 'age': 18}
print(dic['name'])
print(dic['name1'])
​
print(dic.get('name'))
print(dic.get('name1'))
​
dic['gender'] = 'male'
print(dic)
​
dic = {'name': 'egon', 'age': 18,'name':"tom",'name':'lili'}
print(dic)
​
2、长度len
dic = {'name': 'egon', 'age': 18}
print(len(dic))
​
3、成员运算in和not in
dic = {'name': 'egon', 'age': 18}
print('name' in dic)
​
4、删除
​
​
​
万能删除
del dic['name']
print(dic)
​
dic.pop()
v = dic.pop('name')
print(v)    返回被删除的值
​
dic.popitem()
res = dic.popitem()
print(res)  返回一个元组
​
5、键keys(),值values(),键值对items()
"""
>>> dic = {'name': 'egon', 'age': 18}
>>>
>>>
>>> dic.keys()
['age', 'name']
>>>
>>> dic.values()
[18, 'egon']
>>>
>>> dic.items()
[('age', 18), ('name', 'egon')]
"""
​
6、循环
​
dic = {'name': 'egon', 'age': 18}
for k in dic.keys():
   print(k)
​
for k in dic:
   print(k)
​
for v in dic.values():
   print(v)
​
for k,v in dic.items():
   print(k,v)
​
需要掌握的操作
dic = {'name': 'egon', 'age': 18}
dic.update({'name': "EGON", 'gender': "male"})
print(dic)
​
​
dic = {'name': 'egon', 'age': 18,'level':100}
如果level这个key存在于字典中,则什么都不做
否则就往字典中添加一组键值对'level':10
​
if 'level' in dic:
   pass
else:
   dic['level'] = 10
​
v = dic.setdefault('level',10)
print(dic)
print(v)
​
​
l = ['name', 'age', 'gender']
​
dic = {}
for x in l:
   dic[x] = None
​
dic = {}.fromkeys(l,None)
dic = {}.fromkeys(l,[])
dic['name'].append(111)
print(dic)
​
​
练习:
nums = [11, 22, 33, 44, 55, 66, 77, 88, 99, 90]
​
dic = {'k1': [], 'k2': []}
​
for num in nums:
   if num > 66:
       dic['k2'].append(num)
   else:
       dic['k1'].append(num)
​
print(dic)
​
======================================该类型总结====================================
存多个值
无序
可变
​

二、集合类型

pythons = ['张三', '李四', '王五', '刘6', 'egon', 'lili', '李建国']
linux = ['铁蛋', '铜蛋', '钢弹', 'egon', '狗蛋', 'lili']
​
l = []
for name in pythons:
   if name in linux:
       l.append(name)
print(l)
​
======================================基本使用======================================
1、用途
(1) 关系运算
(2)去重(鸡肋)
names = ['egon','tom','jack','egon','egon','egon']
s = set(names)
print(list(s))
​
students_info = [
  {"name": 'egon', 'age': 18},
  {"name": 'tom', 'age': 18},
  {"name": 'jack', 'age': 18},
  {"name": 'egon', 'age': 18},
  {"name": 'egon', 'age': 18},
  {"name": 'egon', 'age': 18},
  {"name": 'egon', 'age': 18},
]
​
res = []
​
for info in students_info:
   if info not in res:
       res.append(info)
​
print(res)
​
​
2、定义方式:在{}内用逗号分隔开多个元素,集合元素的特点如下
           1、集合内元素不能重复
           2、集合内的元素必须是不可变类型
           3、集合内的元素无序
​
s = {111,33.333,(1,2,3),111,111,111,111}  # s=set(...)
print(s)
​
set数据类型转换
print(set('hello'))
print(set([(1,2,3),[1,2,3,4,5],(1,2,3)]))
​
3、常用操作+内置的方法
优先掌握的操作:
1、长度len
s = {1,2,3}
print(len(s))
​
2、成员运算in和not in
s = {1,2,3}
print(1 in s)
​
​
pythons = {'张三', '李四', '王五', '刘6', 'egon', 'lili', '李建国'}
linuxs = {'铁蛋', '铜蛋', '钢弹', 'egon', '狗蛋', 'lili'}
​
3、|合集: 求所有的同学姓名
print(pythons | linuxs)
print(pythons.union(linuxs))
​
4、&交集: 同时报名两门课程的同学
print(pythons & linuxs)
print(pythons.intersection(linuxs))
​
pythons = pythons & linuxs
pythons.intersection_update(linuxs)
​
5、-差集: 求只报名了python课程的同学
print(pythons - linuxs)
print(pythons.difference(linuxs))
pythons.difference_update(linuxs)
​
print(linuxs - pythons)
​
6、^对称差集: 求没有同时报名两门课程的同学
s = (pythons - linuxs) | (linuxs - pythons)
s = pythons ^ linuxs
print(s)
​
s = pythons.symmetric_difference(linuxs)
print(s)
​
7、==
s1 = {1,2,3}
s2 = {3,1,2}
print(s1 == s2)
​
8、父集:>=,子集:<=
s1 = {1,2,3}
s2 = {1,2}
s2 = {1,2,4}
print(s1 >= s2)
print(s1.issuperset(s2))
​
print(s2 <= s1)
print(s2.issubset(s1))
​
了解即可
​
需要掌握
s1 = {1, 2, 3}
s1.update({3,4,5,6})
res = s1.pop()
​
s1.remove(22222)
print(s1)   有则删除,无则报错
​
s1.discard(2222222)
print(s1)  有则删除,没有不会报错
​
s1.add(4)
print(s1)
​
s2 = {3, 4, 5, 6}
​
print(s1.isdisjoint(s2))   判断是否有共同元素
​
======================================该类型总结====================================
存多个值
无序
可变

三、文件处理

"""
1 什么是文件
  文件是操作系统提供给应用程序或者说用户的一种操作硬盘功能
​
​
​
  应用程序----------》
  操作系统---------》文件
  计算机硬件-------》硬盘
​
​
​
2 为何要处理文件
  为了操作硬盘
​
​
3 如何处理文件
​
​
"""
f = open(r'a.txt',mode='rt',encoding='utf-8')  rt:只读
# print(f)
​
data = f.read()
print(data)
​
for line in f:
   print(line)
   user,pwd = line.strip('\n').split(':')
   print(user,pwd)
​
​
f.close()
​
print(f)
f.read()
​

 

posted @ 2021-09-22 21:06  谁笑  阅读(69)  评论(0)    收藏  举报