Python基础之数据类型II

Python基础之数据类型II

3.List(列表)

  • 引子

    我们现在已经学过的基础数据类型: int float str bool,str类型可以帮我们存储少量的数据,但是str有什么缺点?

    • str存储的数据量相对是少量的。

    • str存储的数据无论通过切片、索引还是各种方法得到数据都是字符串类型。

      针对以上str的两个缺点,python引入了列表这种数据类型的概念。

3.1列表的介绍

  • 列表,是python中的常用的基础数据类型之一,他是通过[]括起来,里面的元素通过逗号隔开的容器型数据类型。

    # 数据类型可以按照不同的角度进行分类:
    # 按照容器与非容器的角度进行分类:
    # 容器型数据类型: list,tuple,dict, set.
    # 非容器型数据类型:int float bool str。
    

    列表是有序的,列表相比于字符串,不仅可以储存不同的数据类型,

    而且可以储存大量数据,32位python的限制是 536870912 个元素,

    64位python的限制是 1152921504606846975 个元素。

    而且列表是有序的,有索引值,可切片,方便取值。

3.2索引与切片

列表的索引与切片和字符串的索引与切片几乎一模一样。

  • 索引

    # 索引
    lst = [1, 2, 3, 4, 5, 6]
    # ret = lst[0]
    # print(ret, type(ret))
    # print(lst[2])
    print(lst[-1])
    print(lst[-3])
    
  • 切片

    # 正向切,	顾头不顾腚
    lst = [1, 2, 3, 4, 5, 6]
    # print(lst[:3])
    # print(lst[:])
    # print(lst[:-1:2])
    
    # --------------
    
    # 反向切,	一定要加一个反向步长-1
    lst = [1, 2, 3, 4, 5, 6]
    # print(lst[-1:-4:-1])
    # print(lst[-1:-4])
    # print(lst[2::-1])
    # print(lst[-1::-2])
    
    

3.3 列表的操作

3.3.1增
  • lst = ['豪哥', '明哥', '天哥', '轩哥', '菜哥', '宏哥']
    
    # append 追加
    # lst.append('旋哥')
    # print(lst)
    # --------------
    # insert 插入
    # lst.insert(2, '博哥')
    # print(lst)
    # lst.insert(-2, '超哥')
    # print(lst)
    # --------------
    # extend 迭代着追加
    # lst.extend('allen')
    # lst.extend(['abc', 'aaa', 'bbb'])
    lst.extend(100)  # 错误
    print(lst)
    
    
3.3.2删
  • lst = ['豪哥', '航哥', '天哥', '轩哥', '菜哥', '宏哥']
    # 按照索引删除 pop 有返回值
    # ret = lst.pop(2)
    # print(ret)
    # print(lst)
    # --------------
    # 按照元素删除 remove  只是删除第一个
    # lst.remove('航哥')
    # print(lst)
    # --------------
    # 清空 clear
    # lst.clear()
    # print(lst)
    # --------------
    # del
    # 删除列表
    # del lst
    # --------------
    # 按照索引删除
    # del lst[3]
    # 按照切片删除
    # del lst[:3]
    # 按照切片+步长删除
    del lst[:-2:2]
    print(lst)
    
3.3.3改
  • # print(lst[0])
    # 按照索引修改
    # lst[0] = '珍哥'
    # --------------
    # 按照切片修改(迭代着改)
    # lst[-3:] = 'abcde'
    # lst[-3:] = [100, 200, 300, 400, 500]
    # --------------
    # 按照切片+步长修改(迭代着改)一一对应
    # lst[:-2:2] = 'abc'
    lst[:-2:2] = 'abcd'  # 一一对应
    print(lst)
    
3.3.4查
  • # 按照索引查询
    lst = ['豪哥', '航哥', '天哥', '轩哥', '菜哥', '宏哥']
    print(lst[0])
    print(lst[5])
    
    # --------------
    
    # 按照切片(步长)查询
    print(lst[:5])
    print(lst[3:])
    
    # --------------
    
    # for循环查询
    for i in lst:
        print(i)
    

3.4列表的嵌套

  • lst = [1, 'allen', 'wusir', ['麻花疼', ['可口可乐'], '王健林']]
    
    # 查找麻花疼 数据。
    # print(lst[-1][0])
    
    # 将可口可乐改成百事可乐。
    # l1 = lst[-1][1]
    # # print(l1)
    # l1[0] = '百世可乐'
    # print(lst)
    
    # 简写
    lst[-1][1][0] = '百世可乐'
    print(lst)
    
    
    l1 = [1, 2, 'taibai', [1, 'alex', 3, ]]
    # 1, 将l1中的'taibai'变成大写并放回原处。
    # print(l1[2].upper())
    # l1[2] = l1[2].upper()
    # print(l1)
    # 2,给小列表[1,‘alex’,3,]追加一个元素,nba选秀大会'。
    # l1[-1].append('nba选秀大会')
    # print(l1)
    # 3,将列表中的'alex'通过字符串拼接的方式在列表中变成'alexsb'。
    # print(l1[-1][1])
    
    # l1[-1][1] = l1[-1][1] + 'sb'  # a = a + 1  a += 1
    l1[-1][1] += 'sb'
    print(l1)
    

4.Tuple(元组)

  • 引子

    python中的基础数据类型之一,容器型的数据类型,可以存储大量的数据,tuple也称为元组,元组是不可变的数据类型,存在元组里面的元素只能查询不能增删改。元组也称为只读列表。我们存放一些非常重要的数据。

    # 数据类型的分类:可变与不可变。
    # 可变的数据类型:对原数据可以进行增删改等操作。list,dict,set.
    # 不可变的数据类型:对原数据可以进行增删改等操作。 int,float,str,tuple.
    
  • 基本操作

    tu1 = ('bary', 100, True, [1, 2, 3], (22, 33))
    # 索引与切片
    # print(tu1[0])
    # print(tu1[:3])
    # print(tu1[::2])
    print(tu1[-1:-3:-1])
    
  • 元组没有增删改的操作,只能查询,不能更改

    tu1 = (100, True, [1, 2, 3], (22, 33))
    del tu1[0]
    print(tu1)	# 报错
    
  • 注意点

    • 元组的儿子不能改,但是孙子有可能改。(不这么用)

      tu1 = ('bary', 100, True, [1, 2, 3], (22, 33))
      
      # tu1[0] = 666
      # print(tu1)
      tu1[-2][0] = 666
      print(tu1)
      
  • 元组中如果只含有一个元素,并且没有逗号,则它不是元组,他的类型与该元素的类型保持一致。

    # tu1 = ('bary',)
    # print(tu1, type(tu1))
    #
    # tu1 = ('bary')
    # print(tu1, type(tu1))
    tu1 = ([1,2,3], )
    print(tu1, type(tu1))
    
    tu1 = ([1,2,3])
    print(tu1, type(tu1))
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值