一.基础数据类型补充
1.join() 把列表中的每一项(必须是字符串)用字符串拼接 与split()相反
lst = ["汪峰", "吴君如", "李嘉欣", "陈慧琳", "关之琳"]
# 遍历列表. 把列表中的每一项用"_" 做拼接
s = "_".join(lst) # 把列表转化成字符串
print(s) s1 = "汪峰_吴君如_李嘉欣_陈慧琳_关之琳"
ls = s1.split("_") # 把字符串转化成列表
print(ls) print("*".join("马化腾")) #迭代着加入 马*化*腾
2.关于删除(重点)
1.循环迭代过程中不能删除
2.创建新列表,把要删除的内容保存在新列表中,循环新列表,删除老列表
3.字典在循环中不能改变键值对数量 lst = ["渣渣辉", "古天绿", "陈小春", "彭佳慧", "郑中基", "胡辣汤"]
# lst.clear()
for el in lst: # for 内部有一个变量来记录当前被循环的位置, 索引.
lst.remove(el) # 直接删除. 是删不干净的. 原因是每次删除都设计到元素的移动. 索引在变. 先把要删除的内容保存在一个新列表中. 循环这个新列表. 删除老列表
new_lst = []
for el in lst:
new_lst.append(el)
for el in new_lst:
lst.remove(el)
print(lst) lst = ["张无忌", "张三丰", "张翠山", "张嘉译", '刘嘉玲', "刘能", '刘老根']
# 删除姓张的人
new_lst = []
for el in lst:
if el.startswith("张"):
new_lst.append(el) for el in new_lst:
lst.remove(el)
print(lst) dic = {"谢逊": '金毛狮王', "韦一笑":"青翼蝠王","殷天正":"白眉鹰王","金花婆婆":"紫衫龙王"}
for k in dic:
dic['谢逊'] = "张无忌他爹"
print(dic) 3.fromkeys
dict.fromkeys(k, v) 把key迭代,和value组合成k:v创建新字典,所有v是同一个地址
    
     d = dict.fromkeys('abc', 666)
     print(d) #创建新字典 d = {}
# fromkeys正常来说应该是类名来访问的.
dd = d.fromkeys(["胡辣汤","are you 确定?"], "周芷若") # fromkeys是一个类中的静态方法.作用是创建新字典
print(d) # 原字典没有改变
print(dd) # 新的字典是通过第一个参数的迭代. 和第二个参数组合成key:value创建新字典 d = dict.fromkeys(["哇哈哈", "爽歪歪"], []) # 所有的key用的value都是同一个内存地址.都是同一个列表,改变其中一个。 另一个也跟着改变
d["哇哈哈"].append("张无忌")
print(d) print(id(d['哇哈哈']), id(d["爽歪歪"]))
4.类型转换
元组 => 列表 list(tuple)
列表 => 元组 tuple(list)
list => str str.join(list)
str => list str.split()
转换成False的数据:
0,'',None,[],(),{},set() ==> False   ## 交换值
    a = 10
    b = 20
a, b = b, a
    print(a, b)
二.set集合
1.特点: 无序,去重,内部元素可哈希
lst = []
list(set(lst)) #去重复, 因为集合是无序的,所以去重后顺序会打乱.
# 看一个对象里面的元素是否可修改
print('__setitem__' in dir(set)) # False set中的元素不可修改,不可变.
    数据类型:不重复,无序,它里面的元素是可哈希的.它本身是不可哈希的,因此不能作为字典的 key
set相当于不存value的字典,只存key 空集合 set()
作用: 1.去重 (重点)
li = [11,11,22,22,33,33,44,44]
li = list(set(li))
print(li) 2.数据关系的测试
增:
set1 = {'alex', 'wusir', 'egon', 'barry', 'ritian'}
set1.add('女神')
set1.update('abc') #迭代着增加
set1.update([1, 2, 3]) 删:
set1.remove('alex') #如果对象不存在,则报错KeyError
       set1.discard() #如果删除对象不存在,也不会报错
set1.pop() #随机删除
set1.clear() #清空 空集合 set()
del set1 删除整个集合 改:
删除后增加
set1.remove('alex')
set1.add('elsa') 查:
for i in set1:
print(i)        s = {1, 2, 3, 4}
       print(2 in s) #存在返回True,不存在返回False 3.求交集:
set1 = {1,2,3,4,5}
set2 = {4,5,6,7,8}
print(set1 & set2) #{4, 5}
print(set1.interscetion(set2)) 反交集:
print(set1 ^ set2)
print(set.symmetric_difference(set2)) 并集:
print(set1 | set2)
print(set1.union(set2)) 差集:
print(set1 - set2)
print(set2 - set1) 子集与超集:
set1 = {1,2,3}
set2 = {1,2,3,4,5,6,}
print(set1.issubset(set2)) #子集 set1是set2的子集
print(set2.issuperset(set1)) #超集 set2是set1的超集 set1 = {'barry', 'wusir'}
set2 = frozenset(set1) # 冻集合不能进行添加和删除操作
print(set2,type(set2)) ---------------------------------------------------------
dic = {"a":"哇哈哈", "a":"爽歪歪"}
print(dic) # key 不会重复
dic[[1,2,3]] = "哇哈哈" # 必须是可哈希的 s = set() # 空集合
s = {1,2,3,6,3,4,6,4, [4,5,6]} # 不重复, 必须是可哈希的
print(s) set其实就是不存value的字典. 只存key
去重复
lst = [1,2,3,4,4,4,4,5,5,6,7,7,7]
s = set(lst)
lst = list(s)
print(lst) s = {"赵本山", "范伟", "小沈阳", "高秀敏", "宋小宝"}
s.add("赵铁柱")
s.add("李小花")
s.add("王尼玛")
s.add("张全蛋")
print(s) s.update(("刘伟", '张伟', "张三丰")) # 迭代更新 [],(),{}里面可以放空列表,空元组,空集合,空字典,字典提取key迭代加入 item = s.pop()
s.remove("小沈阳")
print(s)
print(item) for el in s:
print(el) 三.深浅拷贝 #不是指向一个内存地址,而是在内存中开辟了一个内存空间
1.赋值
赋值使用同一个内存地址,多个变量共享一个对象
2.浅拷贝
对于浅copy来说, 第一层创建的是新的内存地址,
而从第二层开始, 指向的都是同一个内存地址,
所以, 对于第二层以及更深的层数来说, 保持一致性.      lst= lst[:] #切片是浅拷贝 l1 = [1, 2, 3]
l2 = l1.copy()
l1.append(111)
print(l1, l2)
print(id(l1), id(l2)) l1 = [1, 2, 3, [1, 2, 3], 4]
l2 = l1.copy()
l1[3].append(5)
print(l1, l2)
3.深拷贝
对于深copy来说,两个对象是完全独立的,
改变任意一个元素(无论多少层),另一个绝对不改变 import copy #导入拷贝模块
l1 = [1,2,3,[1,2,3],4]
l2 = copy.deepcopy(l1)
l1[3].append(666)
print(l1, l2) l1 = [1,2,3,[22,33]]
l2 = l1[:] #切片相当于浅copy
l1[3].append(666)
print(l2)

Day7--Python--基础数据类型补充,集合,深浅拷贝的更多相关文章

  1. Python基础数据类型补充及深浅拷贝

    本节主要内容:1. 基础数据类型补充2. set集合3. 深浅拷贝主要内容:一. 基础数据类型补充首先关于int和str在之前的学习中已经讲了80%以上了. 所以剩下的自己看一看就可以了.我们补充给一 ...

  2. python基础(9):基本数据类型四(set集合)、基础数据类型补充、深浅拷贝

    1. 基础数据类型补充 li = ["李嘉诚", "麻花藤", "⻩海峰", "刘嘉玲"] s = "_&qu ...

  3. python基础篇 07set集合 深浅拷贝

    本节主要内容:1. 基础数据类型补充2. set集合3. 深浅拷⻉ " ".join方法 循环删除列表中的内容:   错误的  原因:在for循环中,循环到第一个,然后删除,删除之 ...

  4. python摸爬滚打之day07----基本数据类型补充, 集合, 深浅拷贝

    1.补充 1.1  join()字符串拼接. strs = "阿妹哦你是我的丫个哩个啷" nw_strs = "_".join(strs) print(nw_s ...

  5. Python基础数据类型之集合

    Python基础数据类型之集合 集合(set)是Python基本数据类型之一,它具有天生的去重能力,即集合中的元素不能重复.集合也是无序的,且集合中的元素必须是不可变类型. 一.如何创建一个集合 #1 ...

  6. python基础数据类型补充

    python_day_7 一. 今日主要内容: 1. 补充基础数据类型的相关知识点 str. join() 把列表变成字符串 列表不能再循环的时候删除. 因为索引会跟着改变 字典也不能直接循环删除.把 ...

  7. is,数据类型补充,set,深浅拷贝

    十二.基础数据类型补充: 1.join 可以把列表变成字符串. s = ‘abc’ s1 = s.join(‘非常可乐’) print(s1)  #非abc常abc可abc乐abc s = " ...

  8. Python基础数据类型之集合以及其他和深浅copy

    一.基础数据类型汇总补充 list  在循环一个列表时,最好不要删除列表中的元素,这样会使索引发生改变,从而报错(可以从后向前循环删除,这样不会改变未删元素的索引). 错误示范: lis = [,,, ...

  9. 《Python》 基础数据类型补充和深浅copy

    一.基础数据类型的补充 元组: 如果元组中只有一个数据,且没有逗号,则该‘元组’数据类型与里面的数据类型一致 列表: 列表之间可加不可减,可跟数字相乘 l1=['wang','rui'] l2=['c ...

随机推荐

  1. 使用getopts处理输入参数

    在编写shell脚本中,需要输入参数,使用过程中,getopts更加方便.可以很好的处理用户输入的参数和参数值. 参加如下一段脚本: #!/bin/bash while getopts ": ...

  2. python数据结构与算法第十三天【归并排序】

    1.代码实现 def merge_sort(alist): if len(alist) <= 1: return alist # 二分分解 num = len(alist)/2 left = m ...

  3. flask 保存文件到 七牛云

    上篇文章队长讲述了如何把前端上传的文件保存到本地项目目录 本篇 讲述一下把前端上传的文件保存到 第三方存储(七牛云) 七牛云相关步骤思路: 首先 进去七牛云官网,注册并实名认证来获取一个七牛云账号和存 ...

  4. vue-cli(vue脚手架)

    vue-cli用于自动生成vue+webpack项目. 安装webpack:npm install webpack -g 检查webpack是否安装成功和版本:webpack -v 如果是webpac ...

  5. HDU 5025 Saving Tang Monk

    Problem Description <Journey to the West>(also <Monkey>) is one of the Four Great Classi ...

  6. mybatis,主键返回指的是返回到传入的对象中

  7. 高度可配置的 Linux 内存守护程序 Nohang!

    导读 Nohang 是一个 Linux 守护程序,也是一个高度可配置的 OOM(内存溢出)阻止工具,适用于 Linux 系统,能够有效地防止内存不足的情况. 部分功能特性 具有良好注释的配置文件,配置 ...

  8. Centos虚拟环境工具virtualenvwrapper

    下载安装virtualenvwrapper pip3 install virtualenvwrapper !!!!注意安装virtualenvwrapper必须是在本地环境下!!! 设置Linux的用 ...

  9. 前端使用Javascrip实现图片轮播

    Javascript实现网页图片自动轮播 1.创建一个img标签 设置默认图片,以及图片的高度和宽度,为了大家方便,我将CSS样式和JS语句都写在一个html文件中,演示用的图片来自小明官网:'htt ...

  10. Spring 使用介绍(六)—— AOP(二)

    一.切入点语法 1)通配符 AOP支持的通配符: *:匹配任何数量字符 ..:匹配任何数量字符的重复,在类型模式中匹配任何数量子包,在方法参数模式中匹配任何数量参数 +:匹配指定类型的子类型,仅能作为 ...