Python基础三

深拷贝 deep 和浅拷贝shallow copy

浅拷贝

  • 是指复制过程中,只复制一层变量,不会复制深层变量绑定的对象
>>> L=[3.1,3.2]
>>> L1=[1,2,L]
>>> L1
[1, 2, [3.1, 3.2]]
>>> L2=L1.copy()
>>> L2
[1, 2, [3.1, 3.2]]
>>> L[0]=3.14
>>> L1
[1, 2, [3.14, 3.2]]
>>> L2
[1, 2, [3.14, 3.2]]

深拷贝

import copy //到放copy模块
L=[3.1,3.2]
L1=[1,2,L]
L2=copy.deepcopy(L1)    //深拷贝
L[0]=3.14
L1  // [1,2,[3.14,3.2]]
L2  // [1,2,[3.1,3.2]]   //此列表不受影响

注:深拷贝通常只对可变得对象进行深层复制,不可变对象通常不会进行复制

>>> L1
[1, 2, [3.14, 3.2]]
>>> L1[2][0]=3.1
>>> L1
[1, 2, [3.1, 3.2]]

列表与字符串比较

  • 列表与字符串都是序列,元素之间有先后关系
  • 列表字符串是不可变序列,而列表是可变的序列
  • 字符串中每个元素只能储存字符,而列表可以存储任意类型的字符
  • 列表和字符串都是可迭代对象

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

S.split(sep=None) 将字符串使用sep使用sep作为分隔符分隔S字符串,返回分隔后的字符串列表,当不给定参数时,用空白字符作为分隔符分隔。

S.join(interable) 用可迭代对象中的字符串,返回一个中间用S进行分隔的字符串

>>> s='hello world'
>>> s.split()
['hello', 'world']
>>> s.split('o')
['hell', ' w', 'rld']
>>> s.split('l')
['he', '', 'o wor', 'd']
>>> '/'.join(s)
'h/e/l/l/o/ /w/o/r/l/d'
>>> L=['qqq','ddd','eee']
>>> '/'.join(L)
'qqq/ddd/eee'

列表推导式 list comprehension

  • 列表推导式是用可迭代对象依次生成带有多个元素的列表的表达式
  • 作用:用简易方法生成列表
  • 语法:[表达式 for 变量 in 可迭代对象]

    [表达式 for 变量 in 可迭代对象 if 真值表达式]
>>> L=[x**2 for x in range(1,10)]
>>> L
[1, 4, 9, 16, 25, 36, 49, 64, 81]
>>> 

列表推导式的嵌套

  • 语法:

      [表达式1
         
           for 变量1 in可迭代对象1 if 真值表达式1
              
              for 变量2 in可迭代对象2 if 真值表达式2]
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值