PYTHON数据类型(进阶)

一、字符串、列表、字典、元祖、集合的补充

  1. str

    1. #captalize 首字母大写,其余小写
    2. s1.capitalize()
    3. #swapcase 大小写翻转
    4. s1.swapcase()
    5. #每个单词首字母大写
    6. s1='hello say3you'
    7. s1.title()#you变成You
    8. #居中
    9. s1.center(30)
    10. s1.center(20,'*')
    11. # 找索引
    12. s1.find('a')#找到第一个返回,找不到返回-1
    13. s1.index('b')#找到第一个返回,找不到报错
  2. tuple

    1. #(3)不是元祖,(3,)才是元祖,而list、dic单元素却不受影响
    2. tu.index('aa')
    3. tu.count('2')
  3. list

    1. 基本操作

      1. #排序
      2. l1.sort()#从小到大
      3. l1.sort(reverse=True)#从大到小
      4. l1.reverse()#反转
      5. #相加
      6. l1+l2
      7. #与数字相乘
      8. l1*3
    2. 删除

      1. #这种删除并不能满足要求,循环删除过程已经改变列表元素序号
      2. l1 = [11, 22, 33, 44, 55]
      3. for index in range(len(l1)):
      4. if index % 2 == 1:
      5. l1.pop(index)
      6. print(l1)
      7. #下面可以的
      8. l1 = [11, 22, 33, 44, 55]
      9. new_l1 = []
      10. for index in range(len(l1)):
      11. if index % 2 ==0:
      12. new_l1.append(l1[index])
      13. l1 = new_l1
      14. print(l1)
      • 提示:循环一个列表的时,最好不要改变列表的大小,这样会影响你的最终的结果
  4. 字典

    1. #字典也有update(必须是键值对),set也有update(迭代增加),list也有extend(迭代增加)
    2. dic = {'name': '老胡', 'age': 28}
    3. dic.update(hobby='美女', hight='175')
    4. dic.update([(1, 'a'),(2, 'b'),(3, 'c'),(4, 'd')]) # 面试会考,列表内元祖对
    5. dic.update(((1, 'a'),(2, 'b'),(3, 'c'),(5, 'd'))) #元祖内元祖对
    6. #fromkeys的用法,就是from各种key而共用value
    7. dic = dict.fromkeys([1,2,3],[])#可迭代对象哦
    8. dic[1].append(66)#所有value都会变,他们是连体的。
    1. 不要遍历字典过程中去改变字典的大小,会报错

      1. dic = {'k1': '太白', 'k2': 'barry', 'k3': '白白', 'age': 18}
      2. for key in dic:
      3. if 'k' in key:
      4. dic.pop(key)
      5. print(dic)
      6. #报错
      7. #下面才可以
      8. l1 = []
      9. for key in dic:
      10. if 'k' in key:
      11. l1.append(key)
      12. print(l1)
      13. for i in l1:
      14. dic.pop(i)
      15. print(dic)
      16. #下面也可以
      17. for key in list(dic.keys()): # ['k1', 'k2', 'k3','age']
      18. if 'k' in key:
      19. dic.pop(key)
      20. print(dic)
  5. 各种“零”

    1. #0,''(),[],{},set(),None
    2. ll=[0,'',(),[],{},set(),None]
    3. for list in ll:
    4. print(bool(list))

二、编码进阶

  1. 先给个报错
  1. s1 =b'中国'
  2. ^
  3. SyntaxError: bytes can only contain ASCII literal characters.
  1. 再明确几个计算机系统中的概念

    1. 当在文本框打字时,显示的是内存中的内容(unicode编码),当保存后,就是通过该软件编码后的数据(当然呈现在你面前是进过软件解码的)

    2. python屏幕打印其实已经经过了IO操作了,也就是内存的数据已经写入pycharm并打印出来,也就是内存的数据经过utf-8编码并经过utf-8解码。所以!!!!!所有print(s),s是什么就打印什么

      1. s1 = '中国'
      2. b1 = s1.encode('utf-8') # 编码
      3. print(b1,type(b1)) #打印结果就是 b'\xe4\xb8\xad\xe5\x9b\xbd'
      4. print(s1)#打印结果就是中国
    3. 对于python中在字符前加b,例如b'hello',其实就是将其进行asicii编码,print时,进行asicii解码,所以能呈现b'hello'。而对于中文来说,b'中国'是错误的,因为不能进行ascii编码,而如2中例子中描述,解码时,byte类型解码通过acsii解不出,只能呈现b'\xe4\xb8\xad\xe5\x9b\xbd'

    4. 对于文件操作,必须制定编码,否则就按照windows默认编码gbk来。但是对于pycharm软件,我们打印时并没有制定编码,我认为,因为是在pychar软件内部操作,所以自动有编码和解码过程,例如

      1. s='中古'
      2. print(s)#中国经历了utf-8编码写入pycharm,然后utf-8解码读出来,中国!!!

PYTHON数据类型(进阶)的更多相关文章

  1. Python基础(四) 基础拾遗、数据类型进阶

    一.基础拾遗 (一).变量作用域 外层变量,可以被内层变量直接调用:内层变量,无法被外层变量使用.这种说法在其它语言中适用,在python中除了栈以外,正常的变量作用域,只要执行声明并在内存中存在,该 ...

  2. python 数据类型---布尔型& 字符串

    python数据类型-----布尔型 真或假=>1或0 >>> 1==True True >>> 0==False True python 数据类型----- ...

  3. Python 数据类型及其用法

    本文总结一下Python中用到的各种数据类型,以及如何使用可以使得我们的代码变得简洁. 基本结构 我们首先要看的是几乎任何语言都具有的数据类型,包括字符串.整型.浮点型以及布尔类型.这些基本数据类型组 ...

  4. Python-Day4 Python基础进阶之生成器/迭代器/装饰器/Json & pickle 数据序列化

    一.生成器 通过列表生成式,我们可以直接创建一个列表.但是,受到内存限制,列表容量肯定是有限的.而且,创建一个包含100万个元素的列表,不仅占用很大的存储空间,如果我们仅仅需要访问前面几个元素,那后面 ...

  5. day01-day04总结- Python 数据类型及其用法

    Python 数据类型及其用法: 本文总结一下Python中用到的各种数据类型,以及如何使用可以使得我们的代码变得简洁. 基本结构 我们首先要看的是几乎任何语言都具有的数据类型,包括字符串.整型.浮点 ...

  6. Python数据类型及其方法详解

    Python数据类型及其方法详解 我们在学习编程语言的时候,都会遇到数据类型,这种看着很基础也不显眼的东西,却是很重要,本文介绍了python的数据类型,并就每种数据类型的方法作出了详细的描述,可供知 ...

  7. Python学习笔记(五)--Python数据类型-数字及字符串

    Python数据类型:123和'123'一样吗?>>> 123=='123'False>>> type(123)<type 'int'>>> ...

  8. python数据类型之元组、字典、集合

    python数据类型元组.字典.集合 元组 python的元组与列表类似,不同的是元组是不可变的数据类型.元组使用小括号,列表使用方括号.当元组里只有一个元素是必须要加逗号: >>> ...

  9. 1 Python数据类型--

    常见的Python数据类型: (1)数值类型:就是平时处理的数字(整数.浮点数) (2)序列类型:有一系列的对象并排或者排列的情况.如字符串(str),列表(list),元组(tuple)等 (3)集 ...

随机推荐

  1. 给文本中的url加超级链接,同时滤过已加过链接的url

    /** * 给文本中的url加超级链接,同时滤过已有链接的url * @param string $str [description] * @return [type] [description] * ...

  2. nginx图片过滤处理模块http_image_filter_module安装配置

    http_image_filter_module是nginx提供的集成图片处理模块,支持nginx-0.7.54以后的版本,在网站访问量不是很高磁盘有限不想生成多余的图片文件的前提下可,就可以用它实时 ...

  3. async/await实现图片的串行、并行加载

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. 【阿里云IoT+YF3300】16.云端一体化,天猫精灵操控YF3300

    “你好天猫精灵”,“主人有什么吩咐”,“打开灯”,“好的,灯已打开”.对于这样的对话应该大多数人都很熟悉,这就是智能家居的缩影.对于现在市面上层出不穷的智能家居系统,功能越来越繁杂,可是因为开发难度高 ...

  5. 用table类型布局一个新闻网页

    <html><head><meta http-equiv="Content-Type" content="text/html; charse ...

  6. 玩转 React(五)- 组件的内部状态和生命周期

    文章标题总算是可以正常一点了-- 通过之前的文章我们已经知道:在 React 体系中所谓的 "在 JavaScript 中编写 HTML 代码" 指的是 React 扩展了 Jav ...

  7. 提高 Web开发性能的 10 个方法

    随着网络的高速发展,网络性能的持续提高成为能否在芸芸App中脱颖而出的关键.高度联结的世界意味着用户对网络体验提出了更严苛的要求.假如你的网站不能做到快速响应,又或你的App存在延迟,用户很快就会移情 ...

  8. html5调用摄像头功能

    前言 前些天,线上笔试的时候,发现需要浏览器同意开启摄像头,感觉像是 js 调用的,由于当时笔试,也就没想到这么多

  9. 单列集合List

    1.Vector和ArrayList以及LinkedList区别和联系.应用场景 线程安全: Vector:如果创建Vector时没有指定容量,则默认容量为10,底层基于数组实现,线程是安全的,底层采 ...

  10. video标签加载视频有声音却黑屏

    问题 昨天用户上传了一个视频文件,然而发现虽然有声音但是黑屏. 解释 因为原视频的编码是用 mp4v 格式的,它需要专用的解码器.而 chrome 并不支持,所以无法播放. 然后如果用转码功能转成用 ...