栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python学习之路:五种数据容器

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python学习之路:五种数据容器

目录

1.字符串
2.列表
3.元组
4.字典
5.集合
6.数据容器的公共方法
7.推导式
8.数据类型转换(二)

七种数据类型

前面已经学习了整型,浮点型,布尔型,整型和浮点型都属于数值型

下面继续学习字符串,列表,字典,集合,元组这五个数据类型

数据类型(二) 一.字符串str
  • 定义:由一对引号包裹的内容叫做字符串类型;也可以使用一对三引号包裹,此时可以实现格式化输出

    str1 = """
    hello
    world
    123
    """
    print(str1)
    
  • 特点:

    • 不可变类型
    • 支持索引下标
    • 支持print打印
    • 每一个字符在内存中都是单独存储的
  • 方法

    • +加号;代表拼接

      str1 = 'a'
      str2 = 'bc'
      print(str1 + str2)
      
    • *乘号;代表复制

      str1 = 'a'
      str2 = str1 * 5
      print(str2)
      
    • 切片:

      口诀:切片其实很简单,只顾头来尾不管,步长为正正向移,步长为负负向移

      切片的方向(由头尾索引确定)和步长的方向要保持一致,不然会无数据

      str1 = 'abcdefg'
      str2 = str1[1:5:2]
      print(str2)
      
    • 查找

      查找子串在字符串中是否存在,存在的话返回第一个子串的第一个字符对应的索引下标

      返回的索引都是正向索引

      字符串的查找方法查找顺序子串不存在
      str1.find(‘子串’)从左到右返回-1
      str1.rfind(‘子串’)从右到左返回-1
      str1.index(‘子串’)从左到右报错
      str1.rindex(‘子串’)从右到左报错
    • 统计次数

      str1.count(‘子串’)

      统计子串在字符串中出现的次数,返回次数值,不存在返回0

    • 修改

      字符串的修改方法解释备注
      str1.replace(‘旧串’, ‘新串’, 替换次数)把字符串中旧串替换为新串
      str1.split(‘子串’)把字符串按照子串进行切割,返回一个列表字符串 -> 列表子串不存在则返回原串
      ‘子串’.join(列表)把列表中每个元素之间用子串连接,拼接成一个字符串列表 -> 字符串列表中的元素必须是字符串类型
      str1.strip(‘子串’)去掉字符串首尾的子串常用来去除首尾空格不写子串或子串不存在则会返回原串
    • 判断

      判断子串是否在字符串中存在解释备注
      子串 in 字符串子串是否在字符串中以下方法全部返回true或者false
      子串 not in 字符串子串是否不在字符串中
      str1.startswith(‘子串’)是否以子串开头
      str1.endswith(‘子串’)是否以子串结尾
      str1.isalpha()是否全部是字母
      str1.isdigit()是否全部是数字
    • 大小写转换

      字符串大小写转换
      str1.upper()把字符串转换成大写
      str1.lower()把字符串转换成小写
      str1.title()把字符串首字母大写
  • 字符串的遍历

    字符串可以使用循环进行遍历

二.列表list
  • 定义

    list1 = []
    list2 = list()
    list3 = [1, 2.3, 'a', False]
    
  • 特点

    • 可变类型
    • 支持索引下标
    • 支持print打印
    • 可以存储多个不同数据类型的数据,包括数据容器
  • 方法

    • 增加

      列表方法之增加解释备注
      list1.append(元素)在列表中追加元素尾部追加
      list1.extend(元素或者数据序列)追加元素或者对数据序列的每一个元素依次追加字符串被当做数据序列依次进行追加
      list1.insert(索引下标, 元素)在指定索引处追加元素
    • 删除

      列表方法之删除解释备注
      del list1[索引]删除列表中指定索引的元素
      list1.pop(索引)删除指定索引的元素默认删除最后一个;有返回值,返回值是被删除的元素
      list1.remove(元素)删除指定的元素
      del list1删除整个列表,内存中清除
    • 查询

      列表方法之查询解释备注
      in/not in
      list1.index(元素)查找元素在列表中的索引返回索引;不存在报错
      list1.count(元素)查找元素在列表中出现的次数
      list1[索引]直接查找索引对应的某个元素
      len(list1)得到列表的长度
    • 修改

      列表方法之修改解释备注
      list1[索引] = 值直接通过索引修改某个值
      list1.reverse()翻转列表
      list1.sort()对列表进行排序默认升序;reverse=True代表降序

      sort()方法的key参数与lambda表达式结合使用,对列表+字典的数据结构进行排序

      list1 = [
          {'name': '张三', 'age': 18},
          {'name': '李四', 'age': 22},
          {'name': '王五', 'age': 20}
      ]
      # 按照年龄升序排列
      list1.sort(key=lambda x: x['age'])
      print(list1)
      
  • 列表的遍历

    使用循环对列表进行遍历

  • 列表的嵌套

    list1 = [
        [1, 2, 3],
        ['a', 'b', 'c']
    ]
    # 打印2
    print(list1[0][1])
    
三.元组tuple
  • 定义

    tuple1 = ()
    tuple2 = tuple()
    tuple3 = (1, 2.3, 'a', False)
    # 和列表相比,只有一个数据的时候也要加逗号
    tuple4 = (1,)
    
  • 特点

    • 不可变类型
    • 支持索引下标
    • 支持print打印
    • 可存储多个不同数据类型的数据
    • 只有一个数据的时候也要加逗号
  • 方法:

    • 查询

      元组方法之查询解释
      tuple1[索引]直接通过索引查询对应元素
      tuple1.index(元素)查找元素在元组中的索引
      tuple1.count(元素)查找元素出现的次数
      in/ not in判断元素是否在元组中
      len(tuple1)得到元组的长度
四.字典dict
  • 定义

    dict1 = {}
    dict2 = dict()
    dict3 = {'name': '张三', 'age': 20}
    
  • 特点

    • 查询神器
    • 存储一个事物,这个事物包含多个属性和值,按照(k:v)键值对的形式存储
    • 可变类型
    • 不支持索引,但是可以通过键值对形式查询
    • 支持print打印
    • 在字典中不区分整型和浮点型:因此1和1.0同时作为key的时候,字典只会保留靠后面的那个键值对,前面的那个会被删除掉
  • 方法

    • 新增/修改

      字典方法之新增/修改解释
      dict1[key] = value如果key存在,那么就是修改
      如果key不存在,那么就是新增
    • 删除

      字典方法之删除解释备注
      del dict1[key]删除指定的键值对
      del dict1删除整个字典
      dict1.clear()清空字典字典还在,内容被清空而已
    • 查询

      字典方法之查询解释备注
      dict1.keys()返回所有的key类似列表的格式返回
      dict1.values()返回所有的value类似列表的格式返回
      dict1.items()返回所有的键值对类似列表+元组的格式返回
      enumerate把一个数据容器(例如列表)转换成类似字典的格式
      dict1[key]查询某个键对应的值如果有重复的键,那么查询最后一个对应的值

      enumerate方法演示

      list1 = ['a', 'b', 'c']
      
      # enumerate方法
      for i in enumerate(list1):
          print(i)
      
  • 字典的遍历

    结合字典查询的方法进行

    dict1 = {'name': '张三', 'age': 20}
    
    # 遍历所有的key
    for k in dict1.keys():
        print(k)
    
    # 遍历所有的value
    for v in dict1.values():
        print(v)
    
    # 遍历所有的键值对
    for k, v in dict1.items():
        print(k, v)
    
五.集合set
  • 定义

    set1 = {1, 2.3, 'a', False}
    set2 = set()
    # 会把每个字符拆出来存储
    set3 = set('abcde')
    
  • 特点

    • 天生去重
    • 无序
    • 可变类型
    • 不支持索引下标,因为数据无序
    • 支持print打印
  • 方法

    • 新增

      集合方法之新增解释备注
      set1.add(元素)增加元素到集合中无序,所以不知道增加到哪个位置
    • 删除

      集合方法之删除解释备注
      set1.pop()默认删除第一个元素返回值是被删除的元素
      set1.remove(元素)删除指定的元素
      del set1删除整个集合
    • 查询

      集合方法之查询解释备注
      in/not in
六.数据容器的公共方法
公共方法一览解释适用于
+合并操作字符串,列表,元组
*复制操作字符串,列表,元组
in/not in判断元素是否存在于数据容器中字符串,列表,元组,字典,集合
len()求数据容器的长度字符串,列表,元组,字典,集合
字典中求解的是键值对的对数
max(),min()求数据容器中最值列表,元组,集合
七.推导式

列表推导式,字典推导式,集合推导式

暂时只学习列表推导式

# 第一种,普通版本
list1 = [i for i in range(10)]

# 第二种,带if语句
list2 = [i for i in range(10) if i % 2 == 0]

# 第三种,嵌套列表
list3 = [(i, j) for i in range(3) for j in range(4)]
八.数据类型转换(二)
数据类型转换(二)解释备注
str()转换成字符串
tuple()转换成元组用于处理数据使其不可修改,一般是列表转元组
list()转换成列表方便处理数据,一般是元组转列表
set()转换成集合用于自动去重,一般是列表转集合
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/920907.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号