set 集合 拷贝的操作

1 str中的join方法,把列表转换成字符串

 s = "**".join(["哈哈", "嘻嘻", "哈哈"])
print(s)

 

2 列表和字典在循环的时候不能直接被删除

 1 lst = ["紫云","大云","玉溪","紫砖","a","b"]
   lst.clear()

2 new_lst = []
   for el in lst:
      new_lst.append(el)

   for el in new_lsts:
     lst.remove(el)
   print(lst)
   print(new_lst)

 

需要把要删除的内容记录到新列表中,然后循环新列表,删除字典或列表

 

lst = ["张国荣","张铁林","张国立","张曼玉","汪峰"]   #删除姓张的
zhangs = []
for el in lst:
 if el.starswith(""张)
    zhangs.append(el)
for el in zhangs:
 lst.remove(el)
print(lst)
print(zhangs)

 

dic = {"提莫":"冯提莫","发姐":"陈一发","55开":"卢本伟"}
dic.clear()   #直接删除

lst[]
for k in dic :    
   lst.append(k)
for el in lst:
 dic.pop(el)
print(dic)   #综上述 列表和字典都不能在循环中进行删除,字典再循环的时候不予许改变大小

 

3 fromkeys()

 

dic ={"apple":"苹果","banana":"香蕉"}
# 返回新字典,和原来的没有关系

ret = dic.fromkeys("orange","橘子")  #直接用字典去访问fromkeys不会对字典产生任何影响

ret = dict.fromkeys("abc",["哈哈","呵呵","嘿嘿"]
print(ret)      #fromkeys 直接使用类名去访问

 

1 返回新字典 对原字典没有影响

2 后面的values 是多个key共享一个value

 

二 set集合

特点 :

无序 不重复 元素必须是哈希(不可变)

s = {"周杰伦","昆仑","坤琳",(1,2,3),"周杰伦"}
lst = [11,22,33,55,6,7,88,9,10,11,22]
s = set(list)    #把列表转换成集合,进行去重复
lst = list(s)
print(lst)

 

作用:

去重复

本身是可变的数据类型 有增删改查操作

s = {"刘嘉玲",关之琳","王祖贤"}
s.update("马化腾")   #迭代更新
print(s)

 

frozenset()冻结的集合,不可变的 可哈希的

 

三 深浅拷贝

1 赋值 没有创建新对象 公用一个对象

2 浅拷贝 拷贝第一层的内容 [:] 或 copy()

lst1 = ["金毛狮王", "紫衫龙王", "青翼蝠王", "白眉鹰王",["张无忌","赵敏","周芷若"]]
lst2 = lst1[:]          #浅拷贝
lst2 = lst1.copy()    #浅拷贝
lst2 = copy.deepcopy(lst1)

print(lst1)
print(lst2)

# 1 赋值操作 没有创建新对象
    2 浅拷贝 只拷贝第一层内容 [:]  copy()
    3 深拷贝 把这个对象内容全部拷贝一份,引入copy模块   deepcopy()

 

3 深拷贝 拷贝所有内容 包括内部的所有

 

转载于:https://www.cnblogs.com/mlhz/p/9415479.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值