python笔记day10

news/2025/3/6 21:36:48/文章来源:https://www.cnblogs.com/anozzz/p/18756534

1 集合类型

作用

关系运算

去重(有局限性)

friends1=['aa','bb','ccc']
friends2=['aa','bb','ee']
#寻找共同好友
l=[]
for x in friends1:if x in friends2:l.append(x)
print(l)
['aa', 'bb']

定义

{}内分开多个元素,满足以下条件
1.元素必须是不可变类型
2.集合内元素无序
3.集合内元素没有重复

s={1,2}#s=set({1,2})
s={1,1,1,1,1,2,3}
print(s)
s={}#默认空字典
print(s,type(s))
s=set()
print(s,type(s))
{1, 2, 3}
{} <class 'dict'>
set() <class 'set'>

类型转换

s=set('hellollll')
print(s)
s=set([1,2,1,1,1,1,1])#列表里不能放列表,可变类型会报错
print(s)
s=set({'k1':111,'k2':222})
print(s)
{'o', 'e', 'h', 'l'}
{1, 2}
{'k1', 'k2'}

内置方法

关系运算

  • 交集
  • 并集
  • 差集
  • 对称差集
  • 父子集 包含关系
#符号形式
#内置方法
friends1={'aa','bb','ccc'}
friends2={'aa','bb','ee'}
#取交集
print(friends1 & friends2)
print(friends1.intersection(friends2))
#取并集
print(friends1 | friends2)
print(friends1.union(friends2))
#取差集 1独有的好友
print(friends1-friends2)
print(friends1.difference(friends2))
#取对称差集
print(friends1^friends2)
print(friends1.symmetric_difference(friends2))
#父子集:包含的关系
s1={1,2,3}
s2={1,2,4}
s3={1,2}
print(s1>s2)
print(s1>s3)
print(s1.issuperset(s3))
print(s3.issubset(s1))
{'bb', 'aa'}
{'bb', 'aa'}
{'bb', 'ccc', 'aa', 'ee'}
{'bb', 'ccc', 'aa', 'ee'}
{'ccc'}
{'ccc'}
{'ccc', 'ee'}
{'ccc', 'ee'}
False
True
True
True

去重

  • 只能针对不可变类型
  • 无法保证原来的顺序
l=[1,1,1,1,3,344,5,'a','c']
print(list(set(l)))l=[{'name':'lili','age':18,'sex':'male'},{'name':'lili','age':18,'sex':'male'},{'name':'aaaa','age':18,'sex':'male'},{'name':'lili','age':18,'sex':'male'}
]
new_l=[]
for dic in l:if dic not in new_l:new_l.append(dic)
print(new_l)
['c', 1, 3, 5, 'a', 344]
[{'name': 'lili', 'age': 18, 'sex': 'male'}, {'name': 'aaaa', 'age': 18, 'sex': 'male'}]

其他操作

  • 长度
  • 成员运算
  • 循环
s={'a','b','c'}
print(len(s))
print('a' in s)
for item in s:print(item)
3
True
c
b
a

其他内置方法

  • discard 删除元素-存在则删除,否则啥也不做
  • update 新集合更新老集合
  • pop 随机删除
  • add 添加元素
  • isdisjoint 判断独立
s={1,2,3}
s.discard(1)
s.discard(0)
print(s)s.update({1,3,5})
print(s)s.difference_update({3,4,5})#求差集并且赋值
print(s)s.pop()
print(s)s.add('a')
print(s)res=s.isdisjoint({3,4,5})#判断是否独立,没有交集
print(res)
{2, 3}
{1, 2, 3, 5}
{1, 2}
{2}
{2, 'a'}
True

2 数据类型总结分类

有序or无序

有序又称为序列类型
字符串 列表 元组 有索引-序列类型
字典 无序 映射类型
直接访问 数字
顺序访问 字符串 列表 元组
key访问 字典

存一个值还是多个值

存一个值称为原子类型,存多个值称为容器类型
数字 整形 浮点型
列表 元组 字典

可变or不可变

可变类型:列表 字典 集合
不可变类型:数字 字符串 元组

3 字符编码

理论多 结论少
文本文件内容由字符组成
文本编辑器读取文件内容的过程
1.程序存储在硬盘 2.读入到内存运行 3.显示
python
1.python解释器 相当于启动文本编辑器
2.由.py读入到内存
3.当作语法识别
文件读入+变量定义
字符和二进制的对应关系-字符编码表
字符----》翻译为二进制存储-----》翻译成显示

发展史

  • 一家独大 ascll码
    8位二进制数对应一个英文字符
  • GBK 对应中文字符
    8位二进制数对应英文字符
    16位二进制数对应中文字符
    日本-韩国 shift_ji euc_kr
    只能输入各国的字符
  • 通用标准
    unicode(内存中统一使用unicode):
    兼容万国字符
    采用16进制对应一个中文字符
    生僻会采用4bytes或者8bytes
    残留其他标准文件·
    》gbk--------转成unicode编码----------对应成字符
    人类字符------------unicode格式编码-------------
    | |
    | shift_jis
    |
    硬盘
    |
    |
    gbk二进制
    老的字符编码都可以转换为unicode 但不能通过unicode互转
    英文字符多时-16位占空间-存硬盘的时候io延迟-原有基础上精简
    utf-8:unicode transform format 8 unicode 的转换格式
    英文->1bytes
    汉字->3bytes
    存乱了
    取乱了

总结

  • 内存固定使用unicode,可以改变的是存入硬盘采用的格式
    unicode->gbk
    unicode->utf-8
  • 文本文件存取乱码问题
    存乱:编码格式设置为支持文件内容字符的格式 utf-8
    取乱:解决方法是,按什么编码存按什么编码取

运行当中怎么保证不乱码

读py文件阶段:
python3 默认读utf-8
python2 默认 ascll
指定文件头 修改默认编码 和存储编码保持一致
在py文件首行 # coding:gbk
告诉解释器存储的编码-先按默认编码读首行
识别python语法阶段:
python3的str 默认存成Unicode 不会乱码
保证python2的str不乱

# coding:utf-8
x='上'
print(x)
x=u'上'#强制存储为unicode
print([x])
上
['上']

了解

python2解释器有两种字符串类型 str unicode
x='上'不指定是会按照文件头指定的编码存储
gbk 首位用来标志中英文 判断1个bytes还是2个bytes

编码解码

编码:utf-8转为 其他 保存为bytes类型 老平台对接
解码:其他编码转为utf-8

x='上'
res=x.encode('gbk')
print(res,type(res))
print(res.decode('gbk'))
b'\xc9\xcf' <class 'bytes'>
上

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/894830.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据集蒸馏论文阅读

Dataset Distillation 18年的论文,最早提出数据蒸馏的概念 理论 通常的梯度下降是小批量的 SGD,每次都需要从训练数据中选一个 minibatch 来更新。这篇文章的重点是学习到一个合成数据 \(\hat x=\{\hat x_i\}_{i=1}^M\) 和学习率 \(\hat \eta\),这样我们就可以固定梯度下降的…

数据蒸馏论文阅读

Dataset Distillation 18年的论文,最早提出数据蒸馏的概念 理论 通常的梯度下降是小批量的 SGD,每次都需要从训练数据中选一个 minibatch 来更新。这篇文章的重点是学习到一个合成数据 \(\hat x=\{\hat x_i\}_{i=1}^M\) 和学习率 \(\hat \eta\),这样我们就可以固定梯度下降的…

激活函数汇总

激活函数 激活函数是用来加入非线性因素的,因为线性模型的表达能力不够。 Sigmoid (1) 公式:\(S(x)=\frac{1}{1+e^{-x}}\) (2) 函数图:(3) 缺点: ① 输出值落在(0,1)之间,期望均值为0.5,不符合均值为0的理想状态 ② 该函数存在一正一负两块“死区”(死区:梯度计算为0,…

深入探究C语言内存分配系列函数

深入探究C语言内存分配系列函数 目录深入探究C语言内存分配系列函数内存是什么?内存分配的三种方式为什么要学习动态分配的系列函数?四大内存分配函数前置知识malloc与freemallocfreerealloccallocDeepseek的总结 当我们完成一个程序设计时,需要对其背后的底层原理学习 操作…

第一课 引言与词向量

对于文字的意义,语言学家有很多种定义。其中一种定义运用在自然语言处理中非常有用,这种意义的定义见下分布式语义就是看上下文词来决定单词的意义。于是我们可以利用词向量来衡量两个词之间的相似程度,词的意义被分散在词向量的每一维中 词嵌入之所以叫词嵌入,是因为我们给…

2025.03.06 CW 模拟赛 A. 岛屿

题面 & 题解 A. 岛屿 概率期望会不了一点. 思路 假设我们最开始有 \(a\) 个「蓝蓝 / 红红」链, \(b\)​ 个「蓝红」链. 我们考虑对于每一个「蓝红」链向外连边. 如图, 我们将红点向外连向一条「蓝蓝」链, 由于每一个点只能最多向外连一条边, 那么它们就「合成」了一条蓝蓝链…

日报202535

今天总算是把项目组的事情解决了,于是正式开了Springboot+vue的学习,用了一晚上的时间配置好了环境(更新了JDK与Maven,重新设置了idea的设置) 然后了解了springboot的配置文件和基本使用,跑出了第一个spring的网页。这看着真有意思吧感觉比jsp方便不少。

Java SPI机制使用

1. Service Provider Interface SPI描述接口提供者优先规定接口要求,然后交由具体的实现者对接口进行内容的实现;2. 实现 //1. 定义接口 public Interface Demo_interface{//具体实现者必须要实现的内容void doexcute(); } //2.实现接口 public class Demo_Impl implements D…

互联网寒冬下,如何写好一份.NET求职简历?附带简洁免费的简历模板!!!

前言 在当今互联网行业的寒冬时期,每一位求职者都面临着更为激烈的竞争环境,如何在众多.NET候选人中脱颖而出,成为企业心仪的对象,用心准备一份简历显得尤为重要。简历不仅是个人职业经历的简要概述,更是向潜在雇主、HR展示你专业技能、项目经验、个人特质以及求职诚意的关…

注册github

今天成功注册了github账户,并上传了一个小项目。

HarmonyOS Next 属性动画和转场动画

HarmonyOS Next 属性动画和转场动画 在鸿蒙应用开发中,动画是提升用户体验的关键要素。通过巧妙运用动画,我们能让应用界面更加生动、交互更加流畅,从而吸引用户的注意力并增强其使用粘性。鸿蒙系统为开发者提供了丰富且强大的动画开发能力,其中属性动画是整个动画体系的核…