• Python笔记2 标准数据类型


    首先,我们知道Python 3 中,有6个标准的数据类型,它们分为可变和不可变。

    不可变数据(3个):

    • Number(数字)
    • String(字符串)
    • Tuple(元组)

    可变数据(3个):

    • List(列表)
    • Dictionary(字典)
    • Set(集合)

    这是Python 3中的6个标准的数据类型,其中包括它们的基本用法和其常用的方法,下面都会列举出来,以便日后学习参考。首先,我们需要了解一下运算符,因为这些数据类型常常用到这些运算等等。


    一、运算符


    详见:Python 运算符


    二、标准数据类型


    1. Number(数字)

    • Python 的数字类型有 int 整型、long 长整型、float 浮点数、complex 复数、以及布尔值(0 和 1)。
    • Python 的数字类型有 int 整型、long 长整型、float 浮点数、complex 复数、以及布尔值(0 和 1)。

    2. String(字符串)

    • 字符串是Python中最常用的数据类型,我们可以使用单引号(’’)或者 双引号("")创建字符串。
    • 字符串是由数字、字母、下划线组成的一串字符串、是编程语言中表示文本的数据类型。

    2.1 处理字符串

    #字符串的形式:使用''或者""创建字符串
    str1 ='this is str1'
    print(str1)
    

    2.2 字符串常用的方法

    • 2.2.1 大小写转换
       # 1.upper() 将字符串中所有小写字母转换为大写
      #字符串.upper()
      s1 = "hello Python"
      print(s1.upper()) # HELLO PYTHON
      
      #2.lower() 将字符串中所有大写字母转化为小写
      #字符串.lower()
      s2 = "HELLO PYTHON"
      print(s2.lower()) # hello python
      
      #3.swapcase() 将字符串中大小写字母进行互换
      #字符串.swapcase()
      s3 = "hello PYTHON"
      print(s3.swapcase()) # HELLO python
      
      #4.title() 将字符串中的字母进行标题化处理(每个单词首字母大写)
      #字符串.title()
      s4 = "hello python hello world"
      print(s4.title()) # Hello Python Hello World
      
      #5.capitalize() 将字符串中第一个字母变为大写 首字母大写函数
      #字符串.captialize()
      s5 = "hello python hello world"
      print(s5.capitalize()) # Hello python hello world
      
    • 2.2.2 判断字符串内容
      # 1.isupper() 检测字符串是否都是大写字母组成
      #  变量.isupper()
      # 2.islower() 检测字符串是否都是小写字母组成
      #  变量.islower()
      # 3.istitle() 检测字符串是否符合标题要求
      #  变量.istitle()
      # 4.isalnum() 检测字符串是否由数字和字母及文字组成
      #  变量.isalnum()
      # 5.isalpha() 检测字符串是否由字母和文字组成
      #  变量.isalpha()
      # 6.isdigit() 检测字符串是否由10进制字符组成(数字) *
      #  True: Unicode数字,byte数字(单字节),全角数字(双字节)
      #  False: 汉字数字
      #  Error: 无
      #  变量.isdigit()
      # 7.isnumeric()检测字符串是否由数字字符组成(数字)
      #  True: Unicode数字,全角数字(双字节),汉字数字
      #  False: 无
      #  Error: byte数字(单字节)
      #  变量.isnumeric()
      # 8.isspace() 检测字符串是是否由空白字符(不可见字符)组成 *
      #  变量.isspace()
      
    • 2.2.3 判断以什么开头结尾
      # 1.startswith() 检测字符串是否以指定的字符串开头 *
      #  变量.startswith('检测的字符串')
      # 2.endswith()  检测字符串是否以指定的字符串结尾 *
      #  变量.endswith('检测的字符串')
      
    • 2.2.4 文本对齐
      # 1.center()  使用指定的字符将字符串填充到指定的长度,原有内容居中对齐 
      #  变量.center(填充长度)
      #  变量.center(填充长度,填充字符)
      # 2.ljust()使用指定的字符将字符串填充到指定的长度,原有内容靠左对齐
      #  变量.ljust(填充长度)
      #  变量.ljust(填充长度,填充字符)
      # 3.rjust()使用指定的字符将字符串填充到指定的长度,原有内容靠右对齐
      #  变量.rjust(填充长度)
      #  变量.rjust(填充长度,填充字符)
      # 4.zfill()  zero fill 零填充效果(即长度不够用0填充),内容靠右
      #  变量.zfill(整个字符串的长度)
      
    • 2.2.5 join() 、split()以及partition()
      # 1.split() 使用特定的字符串切割字符串 *
      #  变量.split(切割的字符)
      #  变量.split(切割的字符, 切割次数)
      # 2.join() 使用特定字符串将容器数据连接成一个字符串 *
      #  特定字符串.join(容器)
      
    • 2.2.6 删除空白字符串 strip()
      # 1.strip() 去除字符串左右两侧指定的连续字符 *
      #  变量.strip() 默认去除左右两侧空格字符
      #  变量.strip(去除的指定字符串)
      # 2.lstrip()去除字符串左侧指定的连续字符
      #  变量.lstrip() 默认去除左右两侧空格字符
      #  变量.lstrip(去除的指定字符串)
      # 3.rstrip()去除字符串右侧指定的连续字符
      #  变量.rstrip() 默认去除左右两侧空格字符
      #  变量.rstrip(去除的指定字符串)
      
    • 2.2.7字符串替代 replace()
    • 2.2.8 字符串替换 makestran(),translate()
    • 2.2.7字符串格式化操作

    3. Tuple(元组)

    • 元组类似于列表,元组用()表示。内部元素用逗号隔开,元组是不可变的,不能二次赋值,相当于只读列表。

      t = (100,'xiaoming','hello',1.23)
      print(t[0]) # 100
      t[3] = 666 # 这是非法应用
      # TypeError: 'tuple' object does not support item assignment
      

    4. List(列表)

    • 列表可以完成大多数集合类的数据结构实现,支持字符,数字,字符串等。列表是Python最通用的复合数据类型。

    4.1 列表中常用的方法

    • 4.1.1 append() 方法
      原地修改列表对象,向列表末尾添加新元素,速度快,推荐使用
      list = [10,'a']
      list.append('b')
      print(list)
      # 结果: [10, 'a', 'b']
      
    • 4.1.2 insert() 方法
      将指定的元素插入到列表对象的任意制定位置,这样会让插入位置后面所有的元素进行移动,会影响处理速度。当涉及大量元素时,尽量避免使用。类似发生这种移动的函数还有:remove(),pop(),del(),它们在删除末尾元素时也会发生操作位置后面元素的移动。
      list = [10,'a']
      list.insert(1,'b')
      print(list)
      # 结果: [10, 'b', 'a']
      

    注意: append() 和 insert() 方法是列表方法,只能在列表上调用,不能在其他值上调用,例如字符串和整型。

    • 4.1.3 " + " 运算符操作
      将原列表和新列表元素依次复制到新的列表对象,并不是真正的向末尾添加元素,而是创建新的列表对象。这种方式涉及大量的复制操作,对操作大量元素不建议使用。
      list = [10,'a']
      list = list + ['b']
      print(list)
      # 结果: [10, 'a', 'b']
      
    • 4.1.4 extend() 方法
      将目标列表的所有元素添加到本列表的末尾,属于原地操作,不创建新的列表对象。
      list = [10,'a']
      list.extend([20,'b'])
      print(list)
      # 结果: [10, 'a', 20, 'b']
      

    注意: 追加append() 和 扩展extend() 方法的区别:append()方法是将数据类型的元素分解添加至列表内;extend()方法为将元素作为一个整体添加。

    • 4.1.5 乘法扩展
      使用乘法扩展列表,生成一个新列表,新列表元素是原列表元素的多次重复。适合用于乘法扩展操作的还有,字符串,元组。
      list = [10,'a']
      list2 = list * 3
      print(list2)
      # 结果: [10, 'a', 10, 'a', 10, 'a']
      
    • 4.1.6 del 全局方法
      能删除列表指定位置的元素,也可以清空列表,字典也可以用del
      list = [10,'a','b']
      del list[1]
      print(list) # 结果: [10, 'b']
      del list
      print(list) # 结果: <class 'list'>
      
    • 4.1.7 remove() 方法
      删除首次出现的指定元素,若不存在该元素抛出异常
      list = [10,'a','b',30,'a']
      list.remove('a')
      print(list) #结果: [10, 'b', 30, 'a']
      list.remove('c')
      print(list)
      # 抛出异常
      # Traceback (most recent call last):
      # [10, 'b', 30, 'a']
      #   File "C:Desktop/Test.py", line 10, in <module>
      #     list.remove('c')
      # ValueError: list.remove(x): x not in list
      

    如果知道要删除的值在列表中的下标,del 语句就很好用。如果知道想要从列表中删除的值,remove() 方法就很好用。

    • 4.1.8 pop() 方法
      删除并返回指定索引位置元素,如果未指定位置则默认操作列表最后一个元素;如果pop参数索引位超出,则报错。
      list = [10,'a','b',30]
      print(list.pop(1)) # 结果: a
      print(list) # 结果: [10, 'b', 30]
      print(list.pop(6)) # 结果: IndexError: pop index out of range
      
    • 4.1.9 sort() 排序方法
      sort() 可以将数值列表或字符串的列表进行排序。
      # 正序
      num = [2,5,-1,3.14,8,22,10]
      num.sort()
      print(num)	
      # 输出: [-1, 2, 3.14, 5, 8, 10, 22]
      print(sorted(num))
      # 输出: [-1, 2, 3.14, 5, 8, 10, 22]
      # sort()和sorted()方法,两者用法不一样
      
      # 逆序
      # 指定reverse关键字参数为True
      num = [2,5,-1,3.14,8,22,10]
      num.sort(reverse=True)
      print(num)	
      # 输出: [22, 10, 8, 5, 3.14, 2, -1]
      print(sorted(num,reverse=True))
      # 输出: [22, 10, 8, 5, 3.14, 2, -1]
      
      关于sort() 方法应注意:
      • sort() 方法要当场对列表排序。
        num = [2,5,-1,3.14,8,22,10]
        num = num.sort() # 错误操作
        print(num)	
        
      • 不能对既有数字又有字符串值的列表排序
        str1 = [1,3,5,7,'hello','world']
        str1.sort()
        print(str1)
        # TypeError: '<' not supported between instances of 'str' and 'int'
        
      • sort() 方法对字符串排序时,使用"ASCII字符顺序",并不是实际的字典顺序。小写 a 在 大写 z 之后。
        str1 = ['A','a','B','b','C','c']
        str1.sort()
        print(str1)
        # 输出: ['A', 'B', 'C', 'a', 'b', 'c']
        
        # 按照普通的字典顺序排序
        str2 = ['A', 'a', 'B', 'b', 'C', 'c']
        str2.sort(key=str.lower) # 将列表所有的项当成小写
        print(str2)
        

    5. Dictionary(字典)

    5.1 增加

    • 5.1.1 给字典 新增 "键值对"
      如果 “键” 已存在,则覆盖 “旧的键值对”,如果 “键” 不存在,则新增 “键值对”。
      info = {'name':'zz','age':18}
      info['age'] = 20 # 键已存在,覆盖
      info['job'] = 'student' # 键不存在,新增
      print(info) #结果: {'name': 'zz', 'age': 20, 'job': 'student'}
      
    • 5.1.2 Python字典的 update() 方法
      将新字典中所有键值对全部添加到旧字典对象上,如果键值对有重复直接覆盖
      info = {'name':'zz','age':18}
      info1 = {'name':'hh','sex':'男','money':8000} 
      info.update(info1)
      print(info)
      # 结果: {'name': 'hh', 'age': 18, 'sex': '男', 'money': 8000}
      

    5.2 删除

    • 5.2.1 Python字典的 clear() 方法
      删除字典内所有的元素
      info = {'name':'zz','age':18,'sex':'男'}
      info.clear()
      print(info) # 结果: {}
      
    • 5.2.2 Python字典的 del 全局方法
      能删除字典指定键的元素,也可以删除字典,列表也可以用 del
      info = {'name':'zz','age':18,'sex':'男'}
      del info['name'] # 删除键是'name'的键值对
      print(info) # 结果: {'age': 18, 'sex': '男'}
      del info    # 清空字典
      print(info)
      # 抛出异常:
      # Traceback (most recent call last):
      # {'age': 18, 'sex': '男'}
      #   File "C:/Desktop/Test.py", line 26, in <module>
      #     print(info)
      # NameError: name 'info' is not defined
      
      这里可以想一下,为什么用clear()删除字典不出现异常呢?
      因为: 用 del 删除的字典不在存在, 而用clear()是清空字典内所有的元素。如果还不懂,建议你多读几遍,深刻体会下,你就会懂了,这时不得不感叹中华文化博大精深!!!
    • 5.2.3 Python字典的 pop() 方法
      删除字典指定键所对应的值,返回值是被删除的值
      info = {'name':'zz','age':18,'sex':'男'}
      print(info.pop('name')) # 结果: zz
      print(info) # 结果: {'age': 18, 'sex': '男'}
      
    • 5.2.4 Python字典的 popitem() 方法
      随机返回并删除字典中的一对键和值
      info = {'name':'zz','age':18,'sex':'男'}
      pop_info = info.popitem() #随机返回并删除一个键值对
      print(pop_info) 
      #  输出结果可能为: ('sex', '男')
      

    6. Set(集合)

    注意点:集合(set)是一个无序的不重复元素序列。

    # 1.创建集合
    info = set('hello')
    print(info)
    # 可能结果: {'l', 'e', 'o', 'h'}
    

    6.1 增加

    Python 集合的添加有两种常用方法,分别是 add() 和 update()。

    • 6.1.1 Python集合 add() 方法
      把要传入的元素做为一个整个添加到集合中,插入位置随机
      info = {'h', 'e', 'l', 'o'}
      info.add('python')
      print(info)
      # 可能结果: {'h', 'e', 'python', 'l', 'o'}
      
    • 6.1.2 Python集合 update() 方法
      把要传入的元素拆分,做为个体传入到集合中
      info = {'h', 'e', 'l', 'o'}
      info.update('python')
      print(info)
      # 可能结果: {'n', 'e', 't', 'o', 'h', 'y', 'p', 'l'}
      

    6.2 删除

    • 6.2.1 Python集合 remove() 方法
      删除集合中的元素,不存在抛出异常
      info = {'h', 'e', 'python', 'l', 'o'}
      info.remove('python')
      print(info)
      # 可能结果: {'e', 'l', 'h', 'o'}
      

    你可能感兴趣的文章:

  • 相关阅读:
    接口的应用(入门级)—— 插件式开发
    什么是接口(入门篇)——使你的程序功能丰富
    什么是接口(入门篇)
    【搞定Jvm面试】 面试官:谈谈 JVM 类文件结构的认识
    【搞定Jvm面试】 JDK监控和故障处理工具揭秘
    【搞定Jvm面试】 JVM 垃圾回收揭秘附常见面试题解析
    【搞定Jvm面试】 Java 内存区域揭秘附常见面试题解析
    【真实面试经历】我和阿里面试官的一次“邂逅”(附问题详解)
    【原创!推荐!】不了解布隆过滤器?一文给你整的明明白白!
    【搞定 Java 并发面试】面试最常问的 Java 并发进阶常见面试题总结!
  • 原文地址:https://www.cnblogs.com/oito/p/12149500.html
Copyright © 2020-2023  润新知