当前位置: 首页 > wzjs >正文

潍坊 网站建设steam交易链接怎么改

潍坊 网站建设,steam交易链接怎么改,淄博市网站建设,成品网站建设价格目录 十四.拆包 列表拆包 元组拆包 集合拆包 字典拆包 经典面试题:交换两个变量的值 十五.深浅拷贝 深拷贝 浅拷贝 十四.拆包 引入 拆包:是一种快速提取数据的方式 例如,有一个元组(11, 22, 33, 44)想快速的提取每个元素且赋值给…

目录

十四.拆包

列表拆包

元组拆包

集合拆包

字典拆包

经典面试题:交换两个变量的值

十五.深浅拷贝

深拷贝

浅拷贝


十四.拆包

引入

拆包:是一种快速提取数据的方式

例如,有一个元组(11, 22, 33, 44)想快速的提取每个元素且赋值给num1, num2, num3, num4这4个变量

普通的做法,较为繁琐:

nums = (11, 22, 33, 44)  # 定义一个元组
num1 = nums[0]  # 通过下标来提取
num2 = nums[1]  # 通过下标来提取
num3 = nums[2]  # 通过下标来提取
num4 = nums[3]  # 通过下标来提取

拆包的方式,可以见非常简洁:

num1, num2, num3, num4 = (11, 22, 33, 44)  # 一行代码搞定
列表拆包
a, b = [11, 22]
print(a)
print(b)
效果:
11
22
元组拆包
a, b = (11, 22)
print(a)
print(b)
效果:
11
22
集合拆包
a, b = {11, 22}
print(a)
print(b)
效果:
11
22
字典拆包
默认取到的是字典的key,而不是value
a, b = {"name": "小明", "age": 18}
print(a)
print(b)
输出:
name
age
teacher_info = {"name": "小明", "age": 18}for k, v in teacher_info.items():print('k = %s, v = %s' % (k, v))输出:
k = name, v = 小明
k = age, v = 18

注意点

在没有使用不定长参数的情况下=右边要拆的数据元素的个数要与=左边存的变量个数相同

错误示例如下

a, b = [11, 22, 33]
运行结果如下:
ValueError                                
Traceback (most recent call last)
<ipython-input-19-887c339c8076> in <module>
----> 1 a, b = [11, 22, 33]ValueError: too many values to unpack (expected 2)

使用不定长参数的情况下(了解即可):

In [1]: int_list = [1, 2, 3, 4, 5]In [2]: a, *b, c = int_listIn [3]: print(a, b, c)
1 [2, 3, 4] 5
经典面试题:交换两个变量的值

方式一:普通方式

a = 4
b = 5
print("交换之前a=%d, b=%d" % (a, b))# 额外定义一个变量,用来临时使用
c = a
a = b
b = c
print("交换之后a=%d, b=%d" % (a, b))
运行结果:
交换之前a=4, b=5
交换之后a=5, b=4

方式二:巧妙方式

a = 4
b = 5
print("交换之前a=%d, b=%d" % (a, b))# 巧妙之处(没有用额外的变量)
a = a+b
b = a-b
a = a-b
print("交换之后a=%d, b=%d" % (a, b))
运行结果:
交换之前a=4, b=5
交换之后a=5, b=4

方式三:拆包方式

a = 4
b = 5
print("交换之前a=%d, b=%d" % (a, b))a, b = b, a
print("交换之后a=%d, b=%d" % (a, b))
执行结果:
交换之前a=4, b=5
交换之后a=5, b=4

说明:

  • a, b = b, a首先要计算=右边b, a此时他们会被当做一个元组即(b, a)就相当于(5, 4)
  • 然后再将a, b = (5, 4)进行计算,此时a为5,b为4
十五.深浅拷贝

深拷贝和浅拷贝需要注意的地方就是可变元素的拷贝:

  • 在浅拷贝时,拷贝出来的新对象的地址和原对象是不一样的,但是新对象里面的可变元素(如列表)的地址和原对象里的可变元素的地址是相同的,也就是说浅拷贝它拷贝的是浅层次的数据结构(不可变元素),对象里的可变元素作为深层次的数据结构并没有被拷贝到新地址里面去,而是和原对象里的可变元素指向同一个地址,所以在新对象或原对象里对这个可变元素做修改时,两个对象是同时改变的,但是深拷贝不会这样,这个是浅拷贝相对于深拷贝最根本的区别。

也可以这样理解: 

  • 深拷贝就是完全跟以前就没有任何关系了,原来的对象怎么改都不会影响当前对象
  • 浅拷贝时,原对象的list元素改变的话会改变当前对象,如果当前对象中list元素改变了,也同样会影响原对象
深拷贝

克隆一份,修改拷贝后的对象中的可变元素不对原对象内容产生影响

copy模块中的deepcopy()

import copylist1 = [["张三", "李四"], "王五", "赵六", "钱七"]
list2 = copy.deepcopy(list1)   # 进行深拷贝# 打印 list1 和 list2 两个列表的内存地址 => 结果不一样
print(id(list1))    # 3132367069640
print(id(list2))    # 3132368415752# 打印 list1 和 list2 两个列表中的子列表的内存地址 => 结果不一样
print(id(list1[0]))     # 3132368414728
print(id(list2[0]))     # 3132368415688list2[0][0] = "安娜"# 结果 list2 列表修改了,但是不影响list1列表数据
print(list2)    # [['安娜', '李四'], '王五', '赵六', '钱七']
print(list1)    # [['张三', '李四'], '王五', '赵六', '钱七']
浅拷贝

修改拷贝后的内容中的可变数据,原对象内容随之修改

列表函数copy()进行浅拷贝

list1 = [["张三", "李四"], "王五", "赵六", "钱七"]
list2 = list1.copy()   # 进行浅拷贝# 打印 list1 和 list2 两个列表的内存地址 => 结果不一样
print(id(list1))    # 2105959073864
print(id(list2))    # 2105989035464print('-' * 30)# 打印 list1 和 list2 两个列表中的子列表的内存地址 => 结果一样
print(id(list1[0]))     # 2105989035592
print(id(list2[0]))     # 2105989035592list2[0][0] = "安娜"# 结果list2列表修改了,list1列表数据也修改了
print(list2)    # [['安娜', '李四'], '王五', '赵六', '钱七']
print(list1)    # [['安娜', '李四'], '王五', '赵六', '钱七']

copy模块中的copy()方法

import copylist1 = [["张三", "李四"], "王五", "赵六", "钱七"]
list2 = copy.copy(list1)   # 进行浅拷贝# 打印 list1 和 list2 两个列表的内存地址 => 结果不一样
print(id(list1))    # 2105959073864
print(id(list2))    # 2105989035464print('-' * 30)# 打印 list1 和 list2 两个列表中的子列表的内存地址 => 结果一样
print(id(list1[0]))
print(id(list2[0]))list2[0][0] = "安娜"# 结果list2列表修改了,list1列表数据也修改了
print(list2)    # [['安娜', '李四'], '王五', '赵六', '钱七']
print(list1)    # [['安娜', '李四'], '王五', '赵六', '钱七']
# 现有女警司有额度为200000元的信用卡,卡号为:20200520,已使用的额度:15000
# 现需要实现曹达华也需要绑定这张信用卡进行付款card = ["女警司", 20200520, [200000, 15000]]    # 女警司名下的信用卡c_card = card.copy()    # 曹达华账户也开了一张绑定女警司信用卡的信用卡,且修改姓名和卡号
c_card[0] = "曹达华"
c_card[1] = 20200521
print(c_card)   # 打印出曹达华的信用卡信息 ['曹达华', 20200521, [200000, 15000]]card[2][1] += 2000   # 此时女警司使用了信用卡且刷了2000元print(c_card)  # 此时曹达华的信用卡额度也随之变化# 运行结果如下
# ['曹达华', 20200521, [200000, 15000]]
# ['曹达华', 20200521, [200000, 17000]]    # 女警司刷卡后,曹达华所持的信用卡已使用的额度随之增长
http://www.dtcms.com/wzjs/204519.html

相关文章:

  • 网站模板有哪些内容梅州seo
  • 怎么做网站推广线下百度搜索引擎营销如何实现
  • 义乌创源网站建设怎么建网站教程
  • 深圳网站做的好的公司名称今日热榜官网
  • 国内如何做国外网站的兼职项目百度竞价推广收费标准
  • 西安政府网站建设现状成都网站建设创新互联
  • 定制网站开发哪家好站长之家域名查询
  • 企业网站建设的流程网络公司主要做哪些
  • 网站怎么做?淘宝店铺推广方式有哪些
  • wordpress爆破软件杭州seo排名
  • 怎么做网站的搜索栏广东东莞大益队
  • 宜兴市网站建设点金推广优化公司
  • 延安网站建设费用江苏网络推广公司
  • 网站建设公司源码 asp网站制作策划
  • 丽江电子商务网站建设如何制作一个个人网站
  • 手机网站 免费建站seo广州工作好吗
  • 蚌埠市建设银行网站百度论坛首页官网
  • 怎么免费注册网站网络营销项目策划
  • o2o网站制作湖南产品网络推广业务
  • 黄骅市邮政编码第三方关键词优化排名
  • 建设网站模板下载seo搜索引擎优化入门
  • 做网站app需要多少钱佛山做网站推广的公司
  • 做的好的淘宝客网站杭州网站推广优化
  • 哪个网站做音基的题不花钱html简单网页成品
  • 网站建设的个人条件营销软文300字范文
  • 昆明做网站建设多少钱景德镇seo
  • 安全等级保护每个网站必须做吗广告宣传费用一般多少
  • 做英雄联盟网站的图片素材seo在线培训机构排名
  • 工程建设云网站关键词优化排名推荐
  • 旅游网站开发报告十大培训机构教育培训机构哪家好