Python核心编程学习笔记(六)

列表的索引操作:

    语法:列表 [整数表达式]

    用法:等同于字符串的索引

         索引分正向索引和反向索引,规则与字符串规则相同

    示例:

        L=list(‘ABCD’)

        print(L[1])    # B

        print(L[-1])   # D

列表的索引赋值

    列表是可变的,可以通过索引赋值改变列表中的元素

    示例:

        L=[1,2,3,4]

        L[2]=3.1

        print(L)     #[1,2,3.1,4]

      L+=[5,6,7]

       print(id[L])

列表的切片操作

    语法: 列表[:]

                列表[::]

    说明:

         列表的切片取值返回一个列表,规则等同于字符串切片规则

  示例:

        x=list(range(10))

        y=x[1:9:2] 

       y=x[:]     # 复制列表,生成了一个新列表

切片的赋值

    语法:  列表[切片slice] = 可迭代对象

    作用:

        可以改变原列表的排序,可以插入数据和修改数据

        可以用切片改变列表对应元素的值

    说明:

        切片的赋值运算符(=)的右侧必须是一个可迭代对象

    示例:

        L= [2,3,4]

        L[1:2]= [3.1, 3.2]     # L=[2, 3.1, 3.2, 4]

        L[:0]= [0,1]             # L=[0, 1, 2, 3.1,3.1, 4]

       L=[1,2]

        L[2:]=range(3,10)         # L=[1,2,3,...9]

切片注意事项:

        对于步长不等1的切片赋值,赋值运算符右侧的可迭代对象提供的数据元素的个数,

        一定要等于切片切出的段数

    例如:

        L=[1,2,3,4,5,6]

        L[::2]=’ABC’       # 正确

    L[::2]=’ABCDE’     # 错误

del语句

    del 可以用来删除列表元素

    语法:  del 列表[索引]

       del  列表[切片]

    示例:

        L=[1,2,3,4,5,6]

        del L[1]

        del L[-1]       


        L=[1,2,3,4,5,6]

       del L[::2]

python中常用的序列函数:

    len(x)      返回序列的长度

    max(x)      返回序列的最大值

    min(x)      返回序列的最小值

    sum(x)      返回序列所有元素的和(元素必须是数字)

    any(x)      真值测试,如果列表中一个元素为真值,返回True

    all(x)      真值测试,列表中所有元素都为真值,返回True,否则返回False


sorted函数:(临时排序)

    用于生成一个排序后的列表

    格式: sorted(iterable,reverse=False)

 

reversed(seq) 返回原序列反序的可迭代对象

示例:

    L=[7,9,5,3,1]

    L2=sorted[L]     #L2=[1,3,5,7,9]

 

字符串的文本解析方法split和join方法

    S.split(sep=none)

    使用sep作为分隔符分割S字符串,返回分割后的字符串列表,

  当不给定参数时默认使用空白字符作为分隔符分割

  S.join(iterable) 

  用可迭代对象中提供的字符串,返回一个中间用S进行分隔的字符串

示例:

  s=”Beijing is capital”

      L=s.split(‘’)     #L=[‘Beijing’,’is’,’capital’]

  

      L=[“C:”,”Windows”,’System32’]

      s=’\\’.join(L)    # s=r”C:\Windows\System32”

 

深拷贝deep copy 和浅拷贝 shallow copy

对象是不可变对象时,深拷贝和浅拷贝没有区别,当对象可变时才有区别

浅拷贝 shallow copy

    L=[3.1,3.2]

    L1=[1,2, L]

    L2=L1.copy()    #  浅拷贝,只复制一层

   print(L1)      #  [1, 2, 3.1, 3.2]

    print(L2)      #  [1, 2, 3.1, 3.2]

    L[0]=3.14

    print(L1)           # [1, 2, 3.14, 3.2]

    print(L2)           # [1, 2, 3.14, 3.2]

说明:浅拷贝指在复制过程中,只复制一层对象,不会复制深层变量绑定对象的复制过程

深拷贝 deep copy

    对所有拷贝对象进行层层复制,实现对象的各自独立

    例:

    importcopy      #导入复制模块

   L=[3.1, 3.2]

    L1=[1,2, L]

    L2=copy.deepcopy(L1)  #  深拷贝

   print(L1)      #  [1, 2, 3.1, 3.2]

    print(L2)      #  [1, 2, 3.1, 3.2]

    L[0]=3.14

    print(L1)           # [1, 2, 3.14, 3.2]

    print(L2)           # [1, 2, 3.1, 3.2]    #此列表不受影响

列表推导式 list comprehesion

    列表推导式是用可迭代对象依次生成带有多个元素的列表的表达式

    作用:

    用简易方法生成列表

    语法:

        [表达式 for 变量 in 可迭代对象]   

    或

    [表达式  for 变量 in 可迭代对象 if 真值表达式]

    示例:

        # 生成一个列表,此列表内的数值是1-9的平方

        L= [x**2  for x in range(1,10)]

列表推导式的嵌套

    语法:

        [表达式 

          for 变量1 in  可迭代对象1 if  真值表达式1

              for  变量2in  可迭代对象2if  真值表达式2

            ...]

    示例:

        用字符串’ABC’和’123’生成如下列表:

        [‘A1’,‘A2’,‘A3’,‘B1’,‘B2’,‘B3’,‘C1’,‘C2’,‘C3’]

       

       L=[x + y  for x in‘ABC’  for y in ‘123’]

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值