一 . join的用法

lst =['吴彦祖','谢霆锋','刘德华']
s = '_'.join(lst)
print(s) # 吴彦祖_谢霆锋_刘德华 # join()
"*".join("吴彦祖") # 吴*彦*祖 把传递进去的参数进行迭代. 获取到的每个元素和前面的*进行拼接. 得到的是字符串
split() 切割. 切割的结果是列表

二 . 对正在循环的列表或者字典的删除方法

  列表和字典: 都不能在循环的时候直接删除
  把要删除的内容记录在新列表中然后循环这个新列表. 删除列表(字典)

# 列表
lst = ['篮球','足球','乒乓球','网球','电子竞技']
lst_new = []
for el in lst:
if '球' in el:
lst_new.append(el)
# 把要删除的添加到新的列表里
print(lst_new) # ['篮球', '足球', '乒乓球', '网球']
for i in lst_new:
lst.remove(i) # 删除旧的列表
print(lst) # ['电子竞技'] 打印旧列表 # 字典
dic = {"张无忌":"乾坤大挪移", "周芷若":"哭", "赵敏":"卖萌"}
# 把要删除的key保存在一个新列表中
# 循环这个列表.删除字典中的key:value
lst = []
for k in dic:
lst.append(k)
# 循环列表
# 删除字典中的内容
for el in lst:
dic.pop(el)
print(dic)

三 . 注意fromkeys()的用法

# 坑: 大坑, 神坑
# fromkeys() 帮我们创建字典用的
# 把第一个参数进行迭代. 拿到每一项作为key和后面的value组合成字典
d = dict.fromkeys("张无忌", "赵敏") # 创建字典
print(d) # {'张': '赵敏', '无': '赵敏', '忌': '赵敏'} # 坑1: 返回新字典. 和原来的字典没有关系
dic = {}
d = dic.fromkeys("风扇哥", "很困")
print(dic) # {}
print(d) # {'风': '很困', '扇': '很困', '哥': '很困'} # 坑2: 如果value是可变的数据类型,
# 那么其中一个key对应的value执行的更改操作. 其他的也跟着变
d = dict.fromkeys("胡辣汤", [])
print(d) # {'胡': [], '辣': [], '汤': []}
d['胡'].append("河南特色")
print(d) # {'胡': ['河南特色'], '辣': ['河南特色'], '汤': ['河南特色']}

四 . 深浅copy

# =
没有创建新对象, 只是把内存地址进行了复制
# 浅拷贝
lst.copy() 只拷贝第一层.
# 深拷贝
import copy
copy.deepcopy() 会把对象内部的所有内容进行拷贝

  浅copy

lst1 = ["胡辣汤", "灌汤包", "油泼面", "麻辣香锅", ["长白山", "白洋淀", "黄鹤楼"]]
lst2 = lst1.copy() # 浅拷贝. 只拷贝第一层内容
print(lst1) # ['胡辣汤', '灌汤包', '油泼面', '麻辣香锅', ['长白山', '白洋淀', '黄鹤楼']]
print(lst2) # ['胡辣汤', '灌汤包', '油泼面', '麻辣香锅', ['长白山', '白洋淀', '黄鹤楼']]
lst1[4].append("葫芦娃")
print(lst1) # ['胡辣汤', '灌汤包', '油泼面', '麻辣香锅', ['长白山', '白洋淀', '黄鹤楼', '葫芦娃']]
print(lst2) # ['胡辣汤', '灌汤包', '油泼面', '麻辣香锅', ['长白山', '白洋淀', '黄鹤楼', '葫芦娃']]

  深copy

# 引入一个模块
import copy
lst1 = ["胡辣汤", "灌汤包", "油泼面", "麻辣香锅", ["长白山", "白洋淀", "黄鹤楼"]]
lst2 = copy.deepcopy(lst1) # 深拷贝: 对象内部的所有内容都要复制一份. 深度克隆(clone). 原型模式 print(lst1) # ['胡辣汤', '灌汤包', '油泼面', '麻辣香锅', ['长白山', '白洋淀', '黄鹤楼']]
print(lst2) # ['胡辣汤', '灌汤包', '油泼面', '麻辣香锅', ['长白山', '白洋淀', '黄鹤楼']] lst1[4].append("葫芦娃")
print(lst1) # ['胡辣汤', '灌汤包', '油泼面', '麻辣香锅', ['长白山', '白洋淀', '黄鹤楼', '葫芦娃']]
print(lst2) # ['胡辣汤', '灌汤包', '油泼面', '麻辣香锅', ['长白山', '白洋淀', '黄鹤楼']]

python--基础数据类型的补充与深浅copy的更多相关文章

  1. python之路--基础数据类型的补充与深浅copy

    一 . join的用法 lst =['吴彦祖','谢霆锋','刘德华'] s = '_'.join(lst) print(s) # 吴彦祖_谢霆锋_刘德华 # join() "*" ...

  2. 基础数据类型的补充和深浅copy

    一:关于str 的操作方法补充 1,s.isspace()   判断字符串是否只由空格组成,是,为True,否则,为False. s = ' ' #只能是以至少一个空格组成的字符串(全空格) prin ...

  3. 基础数据类型之集合和深浅copy,还有一些数据类型补充

    集合 集合是无序的,不重复的数据集合,它里面的元素是可哈希的(不可变类型),但是集合本身是不可哈希(所以集合做不了字典的键)的.以下是集合最重要的两点: 去重,把一个列表变成集合,就自动去重了. 关系 ...

  4. Python基础学习Day7 基础数据类型的扩展 集合 深浅copy

    一.基础数据类型的扩展 1.1GBK ---> UTF - 8 # str --->bytes s1 = '太白' # 字符串是unicode编码 b1 = s1.encode('gbk' ...

  5. 07、python的基础-->数据类型、集合、深浅copy

    一.数据类型 1.列表 lis = [11, 22, 33, 44, 55] for i in range(len(lis)): print(i) # i = 0 i = 1 i = 2 del li ...

  6. Python基础数据类型方法补充

    str 补充的方法: capitalize():首字母大写,其余变小写 s = 'liBAI' s1 = s.capitalize() print(s1) # Libai swapcase():大小写 ...

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

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

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

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

  9. 基础数据类型汇总补充;集合set ;深浅copy

    首先回顾: 小数据池:int -5~256str 特殊字符,*数字20 ascii : 8位 1字节 表示1个字符unicode 32位 4个字节 表示一个字符utf- 8 1个英文 8位,1个字节 ...

随机推荐

  1. 转 载python数据分析(1)-numpy产生随机数

    转自:http://blog.csdn.net/jinxiaonian11/article/details/53143141 在数据分析中,数据的获取是第一步,numpy.random 模块提供了非常 ...

  2. C#项目中的bin目录和obj目录的区别

    C#项目中的bin目录和obj目录的区别 1.关于bin目录和obj目录 Bin目录用来保存项目生成后程序集,它有Debug和Release两个版本,分别对应的文件夹为bin/Debug和bin/Re ...

  3. 【aspnetcore】模拟中间件处理请求的管道

    几个核心对象: ApplicationBuilder 就是startup->Configure方法的第一个参数,请求(HttpContext) 就是由这个类来处理的 HttpContext 这个 ...

  4. Elasticsearch之入门知识

    elasticsearch是一个高度可扩展得开源全文搜索和分析的引擎.可以快速.近实时的存储,搜索和分析大量数据.通常用作底层引擎技术,为具有复杂搜索功能和要求的程序提供支持. 用处: • 运行网上商 ...

  5. python regex

    re.match: match from the beginning of the string re.search: scan through the whole string to find a ...

  6. csu 1552: Friends 二分图 + Miller_Rabin

    http://acm.csu.edu.cn/csuoj/problemset/problem?pid=1552 把那n个数写两次,分成相同的两堆,判断相加是质数的,连一条边,然后找最大匹配,ans = ...

  7. zTree树插件动态加载

    需求: 由于项目中家谱图数据量超大,而一般加载方式是通过,页面加载时 zTree.init方法进行数据加载,将所有数据一次性加载到页面中.而在项目中家谱级别又非常广而深,成千上万级,因此一次加载,完全 ...

  8. Spring AOP初步总结(二)

    该篇为Spring AOP的一个应用案例:系统日志 需求:将任何删除,更改或新增数据库的操作汇总到数据库中 步骤1:编写切面 @Aspect @Component public class SysLo ...

  9. babel-loader7和babel8版本的问题

    根据官网https://www.npmjs.com/package/babel-loader要对应版本 一.babel7.X版本 1.要安装的包  第1套包:npm i babel-core babe ...

  10. 一张图告诉你,只会这些HTML还远远不够!!!!!

    不知道自己HTML水平如何,不知道HTML5如何进化?看这张图 如果一半以上的你都不会,必须看这本书,阿里一线工程师用代码和功能页面来告诉你每一个技术点. 都会一点,但不知道如何检验自己,看看本书提供 ...