PYTHON数据类型(进阶)

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

  1. str

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

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

    1. 基本操作

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

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

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

      dic = {'k1': '太白', 'k2': 'barry', 'k3': '白白', 'age': 18}
      for key in dic:
      if 'k' in key:
      dic.pop(key)
      print(dic)
      #报错
      #下面才可以
      l1 = []
      for key in dic:
      if 'k' in key:
      l1.append(key)
      print(l1)
      for i in l1:
      dic.pop(i)
      print(dic)
      #下面也可以
      for key in list(dic.keys()): # ['k1', 'k2', 'k3','age']
      if 'k' in key:
      dic.pop(key)
      print(dic)
  5. 各种“零”

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

二、编码进阶

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

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

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

      s1 = '中国'
      b1 = s1.encode('utf-8') # 编码
      print(b1,type(b1)) #打印结果就是 b'\xe4\xb8\xad\xe5\x9b\xbd'
      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软件内部操作,所以自动有编码和解码过程,例如

      s='中古'
      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. HTML笔记06--浮动第一章

    float --浮动 一 1.啥叫浮动? [使元素向左或向右移动,其周围的元素也会重新排列]简言之,就是让盒子并排. 通过float定义浮动 ---------- 未浮动样式代码如下: ------- ...

  2. Tornado 简述

    前言 python 旗下,群英荟萃,豪杰并起.单是用于 web 开发的,就有 webpy.web2py.bottle.pyramid.zope2.flask.tornado.django 等等,不一而 ...

  3. mysql数据库笔记0

    mysql数据库笔记0 一次性添加多行数据 例如: INSERT INTO students (class_id, name, gender, score) VALUES (1, '大宝', 'M', ...

  4. VirtualBox Ubuntu设置静态ip亲测可行

    virtualbox重启后ip会自动分配,不固定.项目中需要配置ip地址,因此每次ip换了,需要重新配置和编译. 网上搜罗好几种方法进行配置,尝试下面这种简单并且可行: 步骤一:查看虚拟机网卡 ifc ...

  5. webpack里的externals

    最近在用webpack做一些是sdk相关的东西,有几个概念总结一下: 1.library要做sdk,一定要做的一个配置,用于说明最终的SDK暴露给调用者的一个名称例如:library: 'HelloJ ...

  6. redis 出现(error) MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on disk. Commands that may modify the data set are disabled. Please check Redis logs for details

    如果在ubuntu安装的redis含端口使用,但是某些时候常常出现 (error) MISCONF Redis is configured to save RDB snapshots, but is ...

  7. go bufio 、os 包

    程序使用短变量声明创建bufio.Scanner类型的变量input. input := bufio.NewScanner(os.Stdin) 该变量从程序的标准输入中读取内容.每次调用input.S ...

  8. 【Python】2.17学习笔记 移位运算符,逻辑运算符

    移位运算符 左移运算符 \(<<\),将对应的二进制数末尾补一颗零,高位自然溢出(遁入虚无 print( 5 << 2 ) 把\(5\)的二进制数左移两位 即把\(101\)变 ...

  9. 聊聊order by的工作机制

    总结写在前面: 1. 介绍了orderBy的两种算法流程:全字段排序 和 rowid排序. 2. rowid排序 相比 全字段排序,参与排序字段较少,耗内存较少,多一步回表,如果内存够的情况下MySQ ...

  10. javaScript 基础知识汇总(八)

    1.Map Set WeakMap 和WeakSet Map 是一个键值对的集合,主要的方法包括: new Map() 创建Map map.set(key,value)  根据键(key)存储值(va ...