0607课后总结:set集合和深浅拷贝

一.set集合

1.格式: xx  =  {'key','key'}  #@ 就是存储的key,    @不会重复,   @ 无序,    @其元素必须是可哈希的      @集合本身是不可哈希的

二.运用:

1.去重复:    a = list(x)

2.添加元素:  

1) add :  a.add('key')    如对象是空集合 , 则空集合的格式应为 set = ({})

2)update:    a.update('key')   迭代更新,将对象拆开在加入集合,适用于列表字符串.

3删除元素:

1)x =  a.pop()  #随机删除元素

2) a.clear()  #清空集合

三.集合的运用

1.交集:  & 或intersection

print(a & b)

print(a.intersection(b))

2.并集 : |  或union

print(s1 | s2)
print(s1.union(s2))

3.差集: -  或 difference

print(s2 - s1)
print(s2.difference(s1))

四.深浅拷贝

1.浅拷贝:复制, 克隆,只会拷贝第一层内容. 第二层的内容不会拷贝

1). lst2 = lst1.copy()

2).lst2 = lst1[:]

 

2.深拷贝:拷贝所有内容. 包括里层的所有内容

导入copy模块
  import copy
  lst2 = copy.deepcopy(lst1) # 深度拷贝
  

 

 

---------------------------------------- 分界线  ------------------------ 分界线  -------------------------------- 分界线  --------------

结:有遗漏知识点补充

1. for循环的问题.

        if
        elif
        ..
        else         :条件判断:返回 True 则通过(三选一)


        while 条件:
            循环体
        else:
            代码块       :条件不足时结束循环执行else 或直接结束循环

        for ....in... :
        else..             : 循环结束后执行else

    2. str操作
        join() 把列表变成字符串
        split() 把字符串转换成列表
    3. list的删除问题(绕)
        列表在循环的时候如果执行了删除操作. 索引和长度会有变化. 这种删除是不安全.
        先把要删除的内容放在一个新列表中. 然后循环这个新列表. 删除老列表.

 例子:

 

lst = ['我','要','炸','学','校']

 

for i in range(0, len(lst)):

  lst.pop()
print(lst)

# 把要删除的东西保存在一个新列表中
new_lst = []
for el in lst:
     new_lst.append(el)
# 循环新列表. 删除老列表
for e in new_lst:
print(lst)



 4. 字典在迭代中的删除问题:

  dict在循环过程中是不允许删除的. 把要删除的键放在列表中. 循环列表删除字典

 

posted @ 2018-06-07 15:40  mike1607  阅读(104)  评论(0)    收藏  举报