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  谁笑  阅读(57)  评论(0)    收藏  举报