day 007 深浅拷贝
今日内容:
1.字符串操作补充:
join # 遍历列表
例:
lst = ['汪峰','吴君如','章子怡']
s = '*-/@'.join(lst)
prints(s)
结果为汪峰*-/@吴君如*-/@章子怡
即把列表中的每一项用' '里边的东西进行拼接 结果为 字符串
而lst.split()正好相反
2.删除
例:
lst = ['渣渣辉',''古天乐'','陈小春','石榴姐']
# ls.clear() 没问题
但是用
for el inlst : 内部有一个变量来记录当前被循环的位置,索引.
lst.remove(el) # 直接删除,删不干净.原因是每次删除都涉及到元素的移动,索引在变
总结:
1.循环迭代过程中不能删除
2.要想删除可以创建新列表,先把要删除的内容保留到新列表中.循环这个新列表,删 除老列表
3.字典在循环过程中可以修改,但不能新增和删除.
newlst = []
for el in lst :
newlst.append(el)
for el in newls:
lst.remove(el)
3.fromkeys
字典的fromkeys # fromkeys 是一个类方法,作用是创建新字典
原字典没有改变
dic.fromkeys(k,v)
把k迭代和value组成k:v字典,所有的key共享一个value
所有的key用的都是同一个列表,改变其中一个另一个也相应改变
4.set集合
不重复 无序 不可变 (可哈希)
lst(set(lst))可以用来去除列表中的重复出现的元素
字典里的key不会重复
空集合 s = set()
s = {1,2,3,4,5} # 不重复,必须是可哈希的
# set其实就是不存在value 的字典 只存在key
应用 :去重复
set 无索引 因为无顺序
set 的增删改查
1.增:
s.add('要添加的东西')
s.update()迭代更新
2.删:
item = s.pop()
s.remove('要删除的对象')指定删除某对象
3.改
先删除再添加 s.remove('要删除的对象')之后 s.add('要添加的对象')
4.查
- for el in s :
- print(el)
- 深浅拷贝
- 1.赋值 不会产生新对象 和拷贝没关系,多个变量共享同一个对象
- 2.浅拷贝 只会复制自身.会创建对象新的对象中里面的对象不会被拷贝
- 3.深拷贝 把内部所有内容都进行拷贝.会创建一个一模一样的完全新的对象.这个对象延伸出来的内容也会跟着复制一份
- 冒泡排序
作业
第一题
while 1:
a = input("请随机输入一个三位数").strip()
if len(a) == 3:
sum =
for el in a:
sum += int(el)**3 print (sum)
if int(a) == sum: print("%s是水仙花数"%(a))
break
else:
print("%s不是水仙花数" % (a))
break
else:
print ("输入不合法请重新输入")
continue
2
a = int(input("请输入一个数"))
b = int(input("请再输入一个数"))
print('交换前的数字为a = %s,b = %s'%(a,b))
c = a
a = b
b = c
print('交换后的数字为a = %s,b = %s'%(a,b))
3
a = ['3','2','100','8','6','66','5']
b = []
for i in range(len(a)-1):
if int(a[i]) > int(a[i+1]):
k = a[i]
a[i] = a[i+1]
a[i+1] = k
print(a)
a = ['3','2','100','8','6','5','5','66','5']
count = 0
while count < len(a)-1:
for i in range(len(a)-1):
if int(a[i]) > int(a[i+1]):
k = a[i]
a[i] = a[i+1]
a[i+1] = k
count += 1
print(a)
3 from random import randint
count = 1
s = set()
while count <= 7:
n = randint(0, 36)
s.add(n)
count += 1
print(s)
sal = int(input("请输入您的税前工资:").strip())
if sal <= 2000:
print("您不用交税")
elif sal > 2000 and sal <= 4000:
money = (sal - 2000)*0.97
print("您到手工资为%s元"%(money))
elif sal > 4000 and sal <= 6000:
money = (sal-4000)*0.95 + 2000*0.97+
print("税后收入为%s元"%(money))
elif sal > 6000 and sal <= 10000:
money = (sal-6000)*0.92 + 2000*0.95 + 2000*0.97
print("税后收入为%s元"%(money))
else:
money = (sal - 10000) * 0.8 + 4000 * 0.92 + 2000*0.95 + 2000*0.97
print("税后收入为%s元"%(money))
day 007 深浅拷贝的更多相关文章
- Python 从零学起(纯基础) 笔记 之 深浅拷贝
深浅拷贝 1. import copy#浅拷贝copy.copy()#深拷贝copy.deepcopy()#赋值 = 2. 对于数字和字符串而言,赋值.浅拷贝和深拷贝无意义,因为其永远指向同一个 ...
- python——赋值与深浅拷贝
初学编程的小伙伴都会对于深浅拷贝的用法有些疑问,今天我们就结合python变量存储的特性从内存的角度来谈一谈赋值和深浅拷贝~~~ 预备知识一——python的变量及其存储 在详细的了解python中赋 ...
- Python中的深浅拷贝
1.什么是深浅拷贝? python中一切皆对象,python中的数字.字符串.元组等,如果存放在了内存中,这部分内存里面的内容是不会改变的,但是也有情况,内存中存放了可变对象,比如说列表和字典,他们的 ...
- Python-Day3知识点——深浅拷贝、函数基本定义、内置函数
一.深浅拷贝 import copy #浅拷贝 n1={'k1':'wu','k2':123,'k3':['carl',852]} n2=n1 n3=copy.copy(n1) print(id(n1 ...
- python基础知识5——赋值与深浅拷贝——整数和字符串,列表元组字典
深浅copy 一.数字和字符串 对于 数字 和 字符串 而言,赋值.浅拷贝和深拷贝无意义,因为其永远指向同一个内存地址. 1 import copy 2 # ######### 数字.字符串 #### ...
- python 学习笔记5(深浅拷贝与集合)
拷贝 我们已经详细了解了变量赋值的过程.对于复杂的数据结构来说,赋值就等于完全共享了资源,一个值的改变会完全被另一个值共享. 然而有的时候,我们偏偏需要将一份数据的原始内容保留一份,再去处理数据,这个 ...
- Python开发【第二章】:Python深浅拷贝剖析
Python深浅拷贝剖析 Python中,对象的赋值,拷贝(深/浅拷贝)之间是有差异的,如果使用的时候不注意,就可能产生意外的结果. 下面本文就通过简单的例子介绍一下这些概念之间的差别. 一.对象赋值 ...
- python基础(三元运算+深浅拷贝+函数参数)
三元运算 三元运算,又称三目运算,主要作用是减少代码量,是对简单的条件语句的缩写. 书写格式: result = 值1 if 条件 else 值2 即如果条件成立,则将值1赋给result变量,如果不 ...
- @proprety数组字典字符串用copy和strong区别(深浅拷贝)
//// @proprety数组字典字符串用copy和strong区别(深浅拷贝).h// IOS笔记//// /* _proprety________copy_strong_________h ...
随机推荐
- solr :term 查询, phrase查询, boolean 查询
搜索总体有:term 查询, phrase查询, boolean 查询 1. SOLR搜索覆盖度和准确度保证的三个搜索方式: 保证准确率: AND: Search for two different ...
- webService(简单小demo)
1.什么是webService? 1.1.先说好处: WebService是两个系统的远程调用,使两个系统进行数据交互,如应用: 天气预报服务.银行ATM取款.使用邮箱账号登录各网站等. WebSer ...
- Java C++ Socket通讯
import java.net.*; import javax.swing.plaf.SliderUI; /** * 与c语言通信(java做client,c/c++做server,传送一个结构) * ...
- Linux,du、df统计的硬盘使用情况不一致问题
[转]http://blog.linezing.com/?p=2136 Linux,du.df统计的硬盘使用情况不一致问题 在运维Linux服务器时,会碰到需要查看硬盘空间的情况,这时候,通常会使 ...
- wpf仿qq边缘自动停靠,支持多屏
wpf完全模仿qq边缘自动隐藏功能,采用鼠标钩子获取鼠标当前状态,在通过当前鼠标的位置和点击状态来计算是否需要隐藏. 以下是实现的具体方法: 一.鼠标钩子实时获取当前鼠标的位置和点击状态 /// &l ...
- 算法Sedgewick第四版-第1章基础-1.3Bags, Queues, and Stacks-001可变在小的
1. package algorithms.stacks13; /******************************************************************* ...
- Java-马士兵设计模式学习笔记-工厂模式-抽象工厂模式
一.概述 1.抽象工厂:当情况是需要产生一系列产品,若需更换产品,则要求一系列产品一起换,且要控制一系列产品的产生过程,此时可考虑抽象工厂模式.例:小明装修屋子,把电视.冰箱都替换掉,他这次需要把电视 ...
- 关于 block的一些浅识
block的定义:“带自动变量的匿名函数” (一)写法: ^ void (int iAge){ NSLog(@"%d", iAge);}; 和C函数写法区别在于: 1) :以插入符 ...
- ZROI2018普转提day1t1
传送门 分析 我们先二分一下最终的平均值mid,然后让序列中的每一个数都减去这个mid,之后用新序列的前缀和建一棵线段树,枚举起点i,然后求出此时在i+L-1~i+R-1范围内的前缀和的最大值,用这个 ...
- epoll聊天室的实现
1.服务端 a. 支持多个用户接入,实现聊天室的基本功能 b. 使用epoll机制实现并发,增加效率 2. 客户端 a. 支持用户输入聊天消息 b. 显示其他用户输入的信息 c. 使用fork创建两个 ...