python找出列表中的奇数以及前拷贝和深拷贝的不同

# -*- coding:utf-8 -*-
'''
找出列表中的奇数以及前拷贝和深拷贝的不同
@author:cnliutz
'''
lst = [1,2,4,3,5]
for x in lst:
    if x % 2 == 0:
        lst.remove(x)   # remove()方法会改变列表的长度,导致循环次数减少
print(lst)

lst = [1,2,4,3,5]   # 使用迭代器            
for x in iter(lst):
    if x % 2 == 0:
        lst.remove(x)
print(lst)      

#正确做法是
# lst = [1,2,4,3,5]
for x in lst[:]:    #(浅拷贝) 使用切片,复制列表
    if x % 2 == 0:
        lst.remove(x)   
print(lst)
#----------
#如果是字符串,替换其中的元音字母,可以使用replace()方法
s = "beautiful" #字符串是不可变的,不能直接修改,需要使用replace()方法
for ch in s:
    if ch in "aeiou":
        s=s.replace(ch,"")
print(s)

s = 'hello world'
s = s.replace('a','*').replace('e','*').replace('i','*').replace('o','*').replace('u','*')
print(s)

#如果是字典,删除其中的某个键值对,可以使用pop()方法    
d = {'a':1,'b':2,'c':3}
d.pop('a')
print(d)

#浅拷贝:使用切片,复制列表
#深拷贝:使用deepcopy()方法,复制列表
#浅拷贝和深拷贝的区别:前拷贝只能复制一层,深拷贝可以复制多层
#浅拷贝
lst = [1,2,3,[4,5,6]]
lst2 = lst[:]
lst2[3][0] = 7
print(lst)
print(lst2)
#lst、lst1两者结果相同
#深拷贝
import copy
#dir
lst = [1,2,3,[4,5,6]]
lst2 = copy.deepcopy(lst)
lst2[3][0] = 7
print(lst)
print(lst2)
#lst、lst1两者结果不同
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值