Python学习笔记--4.Python内置数据结构集合和字典

Python学习笔记--4.Python内置数据结构集合和字典

  • 前言
  • 一、集合
    • 集合的创建:
    • 集合内置方法--增删改查等
    • frozenset
  • 二、字典
    • 字典创建、增删改查
    • defaultdict
  • 笔记补充


前言

本章我们继续学习python内置数据结构集合和字典。包括集合、frozenset、字典、defaultdict。

集合(set)是一个无序不重复的元素序列,可用于去重

字典(dict)是另一种可变容器模型,可存储任意类型对象。采用键值对的方式存储,键一般是唯一的,如果重复最后一个键值对会替换前面的,值不需要唯一。


一、集合

集合的创建:

使用大括号 { } 或者 set() 函数创建集合;
注意:创建一个空集合必须用 set() , { } 是用来创建一个空字典。

Python学习笔记--4.Python内置数据结构集合和字典_第1张图片

集合内置方法–增删改查等

脑图展示集合内置方法:
Python学习笔记--4.Python内置数据结构集合和字典_第2张图片
图中左边的逻辑关系主要用于查找,右边用于修改集合内容(可类比字符串进行记忆)。

s.add()			添加

Python学习笔记--4.Python内置数据结构集合和字典_第3张图片

a.update() 	为集合添加元素

Python学习笔记--4.Python内置数据结构集合和字典_第4张图片

s.discard	有就删除,无则do nothing
s.remove	有就删除,无则报错

实例:
华为笔试编程题: 明明的随机数
明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤1000),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从大到小排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作(同一个测试用例里可能会有多组数据,希望大家能正确处理)。

import random

N = int(input("N: "))
nums = set()
for i in range(N):          #循环生成随机数并存入nums集合中
    num = random.randint(1, 1000)
    nums.update([num])
print(sorted(nums,reverse=True)) #排序,reverse=True表示倒序

Python学习笔记--4.Python内置数据结构集合和字典_第5张图片

frozenset

需求:
1)当集合不需要改变时,
2)当默写API需要不可变对象时,

frozenset 是 set 的不可变版本,因此 set 集合中所有能改变集合本身的方法(如 add、remove、discard、xxx_update 等),frozenset 都不支持;set 集合中不改变集合本身的方法,fronzenset 都支持。


二、字典

字典(dict)是另一种可变容器模型,可存储任意类型对象。采用键值对的方式存储,键一般是唯一的,如果重复最后一个键值对会替换前面的,值不需要唯一。

字典创建、增删改查

dict = {'name':'westos', 'age':18,'city':"xi'an"}
print(dict,type(dict))

Python学习笔记--4.Python内置数据结构集合和字典_第6张图片

脑图查看字典内建方法:
Python学习笔记--4.Python内置数据结构集合和字典_第7张图片
字典查找

print(dict.values())		查看字典值
print(dict.keys())			查看字典key值
print(dict.items())			按照项目查看字典内容

Python学习笔记--4.Python内置数据结构集合和字典_第8张图片

print(dict['name'])
print(dict['age'])		查看特定键的值

Python学习笔记--4.Python内置数据结构集合和字典_第9张图片
k,v遍历字典:今后会经常用到

for k,v  in d.items():
    print(f'{k}:{v}')

Python学习笔记--4.Python内置数据结构集合和字典_第10张图片

字典删除

dict.pop('name')
del dict['age']		删除字典某个值

Python学习笔记--4.Python内置数据结构集合和字典_第11张图片

defaultdict

程序中未指定某个key值,提供默认属性,避免报错。
普通设定方式:

dict = {'name':'westos', 'age':18,}
dict['city'] = "xi'an"
print(dict)
dict['city'] = "Beijing"
print(dict)

Python学习笔记--4.Python内置数据结构集合和字典_第12张图片
引入defaultdict设定值

dict = {'name':'westos', 'age':18,}
dict.setdefault('city',"xi'an")
print(dict)
dict.setdefault('city',"Beijing")
print(dict)

当存在默认值后,key对应的值将不会改变。

defaultdict的作用2:
在使用defaultdict的时候,也可以指定创建文件类型

from collections import defaultdict
d = defaultdict(int)
d['num'] = 1
print(d)

d= defaultdict(set)
d['media'].add('haha')
print(d)

d= defaultdict(list)
d['media'].append('haha')
print(d)

Python学习笔记--4.Python内置数据结构集合和字典_第13张图片


笔记补充

数据结构总结:
序列特性:索引、切片、连接操作符(+)、重复操作符(*)、成员操作符等。

Python学习笔记--4.Python内置数据结构集合和字典_第14张图片

word文档不是纯文本文件,是二进制程序,不安装office打不开。

你可能感兴趣的:(python学习,python,数据结构,运维)