一、枚举

  enumerate,for i in enumerate(可迭代对象),返回元组,内容是(序列号,可迭代的每一个元素)

            for i,j in enumerate(可迭代对象,开始序列号),返回序列号,可迭代的每一个元素

a = 'abc'
b = {'a':1,'b':2}
for i in enumerate(a):print(i)
#输出:
#(0, 'a')
#(1, 'b')
#(2, 'c')for i,j in enumerate(a,1):print(i,j)
#输出:
#1 a
#2 b
#3 c

二、内存地址:id()

  ==比较的是值,is 比较的是内存地址

  小数据池:int:-5~256

       str:1.不能有空格  

            2.长度不能超过20  

          3.不能有特殊字符

a = []
b = []
print(a == b,a is b)  #True False

a = 'abc'
b = 'abc'
print(a == b,a is b)  #True True

a = '-6'
b = '-6'
print(a == b,a is b)  #True False

三、编码

  在python3中,str的表现形式为字符串,bytes的表现形式为b字符串,str的实际编码方式是unicode,bytes的编码方式是utf-8、gbk、gb2312...

  在python3中,unicode:1个字符(无论中文、英文、数字),都用4个字节表示

          utf-8:用最少的字节表示一个字符,英文占1个字节,欧洲文字占2个字节,亚洲文字占3个字节

          gbk:英文占1个字节,中文占2个字节

  在python3中,字符串存在内存中是unicode编码方式,不能直接传输或者存储在硬盘,要转成bytes类型,unicode转bytes:a.endode('编码方式'),bytes转unicode:a.decode('编码方式')

          utf-8和gbk、gb2312等编码方式互不识别,如果要转化,要先解码(decode)成unicode方式,再编码(encode)成对应的方式。

a = 'abc'
b = a.encode('utf-8')
print(b,type(b))  #b'abc' <class 'bytes'>

a = '你好'
b = a.encode('utf-8')
print(b,type(b))  #b'\xe4\xbd\xa0\xe5\xa5\xbd' <class 'bytes'>
c = b.decode()
print(c,type(c))  #你好 <class 'str'>
d = c.encode('gbk')
print(d,type(d))  #b'\xc4\xe3\xba\xc3' <class 'bytes'>

四、集合(set)

  集合用{}表示,集合是无序、不重复的数据集合,它里面的元素是可哈希的(不可变类型),但是集合本身是不可哈希。

  特点:去重,把一个列表变成集合,就自动去重了;

        关系测试,测试两组数据之前的交集、差集、并集等关系;

  1、增:add(),update()(迭代着增加)

set1 = {1,2,3}
set1.add('abc')
print(set1)  #{1,2,3,'abc'}

set1 = {1,2,3}
set1.update('abc')
print(set1)  #{1,2,3,'a'.'b'.'c'}

  2、删:remove('元素')、pop():随机删除一个元素,并返回这个元素、clear():清空集合

set1 = {1,2,3,'a','b','c'}
set1.remove(1)  #删除一个元素
print(set1)  #{2,3,'a','b','c'}

set1.pop()  #随机删除一个元素
print(set1)  #{3,'a','b','c'}

set1.clear()  #清空集合
print(set1)  #set()

  3、集合的其它操作

    3.1、交集(& 或者 intersection)

set1 = {1,2,3,4,5}
set2 = {4,5,6,7,8}
print(set1 & set2)  # {4, 5}
print(set1.intersection(set2))  # {4, 5}

    3.2、并集(| 或者 union)

set1 = {1,2,3,4,5}
set2 = {4,5,6,7,8}
print(set1 | set2)  # {1, 2, 3, 4, 5, 6, 7,8}
print(set2.union(set1))  # {1, 2, 3, 4, 5, 6, 7,8}

 

    3.3、差集(- 或者 difference)

set1 = {1,2,3,4,5}
set2 = {4,5,6,7,8}
print(set1 - set2)  # {1, 2, 3}
print(set1.difference(set2))  # {1, 2, 3}
print(set2 - set1)  #{8, 6, 7}
print(set2.difference(set1))  #{8, 6, 7}

    3.4、反交集(^ 或者 symmetric_difference)

set1 = {1,2,3,4,5}
set2 = {4,5,6,7,8}
print(set1 ^ set2)  # {1, 2, 3, 6, 7, 8}
print(set1.symmetric_difference(set2))  # {1, 2, 3, 6, 7, 8}

    3.5、子集: < 或者 issubset  超集: > 或者 issuperset

set1 = {1,2,3}
set2 = {1,2,3,4,5,6}print(set1 < set2)  # True
print(set1.issubset(set2))  # Trueprint(set2 > set1)  # True
print(set2.issuperset(set1))  # True

  5、frozenset:不可变集合,让集合变成不可变类型

s = frozenset('barry')
print(s,type(s))  # frozenset({'a', 'y', 'b', 'r'}) <class 'frozenset'>

五、深浅copy

  1、赋值运算

l1 = [1,2,3,['a','b']]
l2 = l1l1[0] = 111
print(l1)  # [11, 2, 3, ['a','b']]
print(l2)  # [11, 2, 3, ['a','b']]

l1[3].append('c')
print(l1)  # [11, 2, 3, ['a','b','c']]
print(l2)  # [11, 2, 3, ['a','b','c']]

  对于赋值,指向的是同一个列表,所以更改l1的时候,l2也随之改变

  2、浅拷贝:copy()

l1 = [1,2,3,['a','b']]
l2 = l1.copy()l1[0] = 111
print(l1)  # [111, 2, 3, ['a','b']]
print(l2)  # [1, 2, 3, ['a','b']],1没有改变

l1[3].append('c')
print(l1)  # [111, 2, 3, ['a','b','c']]
print(l2)  # [1, 2, 3, ['a','b','c']],列表里面的列表变了

  对于浅copy来说,第一层创建的是新的内存地址,而从第二层开始,指向的都是同一个内存地址,所以,对于第二层以及更深的层数来说,保持一致性。

  3、深拷贝:copy.deepcopy(),pycharm需要import copy

import copy
l1 = [1,2,3,['a','b']]
l2 = copy.deepcopy(l1)l1[0] = 111
print(l1)  # [111, 2, 3, ['a','b']]
print(l2)  # [1, 2, 3, ['a','b']],1没有改变

l1[3].append('c')
print(l1)  # [111, 2, 3, ['a','b','c']]
print(l2)  # [1, 2, 3, ['a','b']],列表里面的列表也没有发生改变                                 

  对于深copy来说,两个是完全独立的,改变任意一个的任何元素(无论多少层),另一个绝对不改变

转载于:https://www.cnblogs.com/Coufusion/p/7750676.html

Python学习(四) —— 编码相关推荐

  1. python学习四(处理数据)

    python学习四(处理数据) head first python中的一个数据处理的例子 有四个U10选手的600米成绩,请取出每个选手跑的最快的3个时间.以下是四位选手的9次成绩 James 2-3 ...

  2. (零基础)入门python学习四步骤,附上Python全栈学习路线大刚!

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 以下文章来源于腾讯云 作者:python学习教程 ( 想要学习Python?Pyt ...

  3. python学习四十四天(前端之HTML标签)

    今日主要内容: web标准 浏览器内核 HTML介绍,规范,结构详解 字体标签 排版标签 超链接 图片标签 列表标签 <ul>.<ol>.<dl> 表格标签 < ...

  4. python学习日常-编码与字符串格式化

    python编码也是遵循计算机技术的编码的,英文编码还是遵循ascii码,中文编码遵循gb2312,都遵循的是utf-8编码. 值得注意的是几个函数,ord("a"),是查询a的u ...

  5. Python学习四: 连接数据库 与 数据清理

    连接数据库 准备工作 楼主这里用的一个轻量级关系型数据库,MySQL (这里楼主安装MySQL的时候遇到了一个小问题,没有兼容服务器,根据这个帖子可以解决这个问题  分享 | 安装 mysql 报错 ...

  6. Python学习(四)后端开发框架django

    常见python web开发框架: web.py Django Pylons Tornado Bottle django菜鸟教程 一.django项目创建与启动 1.安装django pip inst ...

  7. Python学习之——编码方式

    1.各种编码方式 ASCII:http://zh.wikipedia.org/zh-hans/ASCIIUnicode:http://zh.wikipedia.org/zh-hans/UnicodeU ...

  8. Python学习-字符编码的理解

    Unicode编码和ASCII码两者都是机器能够理解的编码,你就是说出现一个码,计算机知道它对应哪种符号.因为这种编码形式将不同的字符全都和电平的高低电位联系在一起. Unicode,这种编码是全球通 ...

  9. Python 学习之[编码]

    全世界最早的编码是ASCII 最早只有 256个bit 8位 但是只用了128位 剩下一位补零.最早是美国人发明的 只支持英文 数字 和符号 一个字母是 8bit=1byte 随着计算机的世界普遍应用 ...

  10. Python学习---Python安装与基础1205

    1.0. 安装 1.1.1. 下载 官网下载地址:https://www.python.org/downloads/release/python-352/ 1.1.2. 配置环境变量 因为在安装的时候 ...

最新文章

  1. 真香!如何用300行代码写完一个Spring基本框架?
  2. 如何设计大规模 JavaScript 应用
  3. 通过设置Ionic-Cli代理解决ionic serve跨域调试问题
  4. frps与frpc的区别
  5. 2021暑假实习-SSM超市积分管理系统-day02笔记
  6. TransactionScope 分布式事务
  7. halcon联合C#测量十字Mark中心
  8. 可扩展的TextView,ExpandableTextView与Scroller类的使用
  9. ICCV2021 | 如何高效视频定位?QMUL北大Adobe强强联手提出弱监督CRM,性能SOTA
  10. 泰山挑夫1(菜鸟题解)
  11. 安卓案例:帧式布局演示(切换颜色)
  12. 如何查看某个查询用了多少TempDB空间
  13. 机器人走进开放源代码
  14. 世界各国与中国时差查询
  15. NPM安装依赖包,报错node-gyp rebuild...解决方法
  16. C++ 字符串的截取
  17. 2020年诺贝尔化学奖得主自述:基因编辑技术将把我们带向何方?
  18. 目标跟踪(4)使用dlib进行对象跟踪
  19. css中margin-top和top有什么区别
  20. 百度云破解不限速版(绿色免安装)

热门文章

  1. 排列出所有子串暴力递归
  2. 记录kafka-flink bug
  3. prfm预加载指令使用说明
  4. OllyDbg的一些快捷键
  5. 发送图片微博_微博引流之(实时号养成内幕解析)!
  6. 在php里面怎么做日期范围,如何在php中获得上周的日期范围?
  7. 5G NR上行控制信道PUCCH
  8. 千万级的mysql数据库与sql优化方法
  9. java call oracle procudure setBoolean问题PLS-00306: wrong number or types of arguments in call to
  10. Index of school