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

网站如何做吸引人的项目杭州关键词优化测试

网站如何做吸引人的项目,杭州关键词优化测试,怎么做ebay网站,ppt模板免费下载完整版免费简约1. 字典拷贝 有些场景下,需要对字典拷贝一个副本。这个副本用于保存原始数据,然后原来的字典去参与其他运算,或者作为参数传递给一些函数。 例如, >>> dict_a {"name": "John", "address&q…

1. 字典拷贝

有些场景下,需要对字典拷贝一个副本。这个副本用于保存原始数据,然后原来的字典去参与其他运算,或者作为参数传递给一些函数。

例如,

>>> dict_a = {"name": "John", "address":"221B Baker street"}
>>> dict_b = dict_a

利用赋值运算法把dict_a赋值给dict_b之后,这2个变量的值是相同的。

你或许会拿着dict_b去参与其他的运算,例如,更新/添加键值对。

但事实却不是你认为的那样,如果你更新或者编辑dict_b,dict_a也会随之改变,详细内容可以了解一下Python可变对象与不可变对象
下面来看一下效果:

>>> dict_b["age"] = 26
>>> dict_b
{'address': '221B Baker street', 'name': 'John', 'age': 26}
>>> dict_a
{'address': '221B Baker street', 'name': 'John', 'age': 26}

你会发现,给dict_b添加了一个age:26键值对,dict_a也更新了,这样,我们留一个副本就没有任何意义了。

针对这个问题,可以用Python中的浅拷贝copy、深拷贝deepcopy来解决,下面来看一下,

>>> dict_c = dict_b.copy()
>>> dict_c["location"] = "somewhere"
>>> dict_c
{'address': '221B Baker street', 'name': 'John', 'age': 26, 'location': 'somewhere'}
>>> dict_b
{'address': '221B Baker street', 'name': 'John', 'age': 26}

2. 字典键值 True和1

>>> dict_a = dict()
>>> dict_a
{}
>>> dict_a[1] = "apple"
>>> dict_a[True] = "mango"
>>> dict_a[2] = "melon"
>>> dict_a
{1: 'mango', 2: 'melon'}

你注意到发生了什么吗?

输出字典之后,发现键值True没有了!

这是因为,在Python中,True相当于1、False相当于0,因此,在dict_a[True] = "mango"这行代码里,它把原来键值为1给替换了。

可以来验证一下True相当于1的说法:

>>> isinstance(True, int)
True
>>> True == 1
True

3.驻留字符串

在某些情况下,Python尝试重用现有的不可变对象。
字符串驻留就是这样一种情况。来看一个示例对比,

>>> a = "gmail"
>>> b = "gmail"
>>> a is b
True

然后修改一下,

>>> a = "@gmail"
>>> b = "@gmail"
>>> a is b
False

是不是很神奇?我们只加了一个@符号,结果却截然不同!

在第一个实现方法中,尝试创建两个不同的字符串对象。但是当检查两个对象是否相同时,它返回True。

​这是因为python并没有创建另一个对象b,而是将b指向了第一个值gmail,换句话说它被驻留了。

但是,如果字符串中除ASCII字符、数字、下划线以外的其他字符时,它则不会驻留,这样的话,它就不会再指向@gmail。

这里需要注意一下,is与==的运算是不同的。

==用于判断值是否相等,is不仅需要值相等,还需要指向同一个对象。

>>> a = "@gmail"
>>> b = "@gmail"
>>> a is b
False
>>> a == b
True

4. 默认参数只计算一次

>>> def func(a, lst=[]):
...     lst.append(a)
... return lst
... 
>>> print(func(1))
[1]
>>> print(func(2))
[1, 2]

这里发生了什么?

我在func中给了一个默认参数[],然后先后调用2次func函数。

按照我们常规的认识,这2次调用是分开的,第1次调用输出[1],第二次应该输出[2],为什么第2次调用时列表里竟然还保留着第1次调用时的值?

这是因为,在Python中,默认参数只会被计算一次。第1次调用func(1)时,它用到了默认参数。但是,第2次调用就不会再去计算默认参数,直接在[1]的基础上附加一个值。

http://www.yidumall.com/news/49686.html

相关文章:

  • 自然资源网站官网信息服务平台有哪些
  • 网站怎么做网络推广游戏推广代理app
  • 福州医疗网站建设sem竞价课程
  • 湖北做网站找谁大二网页设计作业成品
  • 东莞公司注册服务平台网站优化排名推广
  • 个人备案公司网站seo都用在哪些网站
  • 电商个人网站建设非企户百度推广
  • 上海高端网站建设百度指数数据分析
  • 什么网站做教育的比较多互联网营销师培训课程免费
  • 专业网上商城开发整站优化和关键词优化的区别
  • wordpress title description南平seo
  • 广州网站建设 骏域网站建设专家永久免费二级域名申请
  • 优设计网站长沙seo全网营销
  • flash网站源码带asp后台怎么开一个网站平台
  • 学校如何报销网站开发费用同城引流用什么软件
  • 公司怎么做网页网站seo在线论坛
  • 淘宝店铺可以做网站优化么爱站网站排行榜
  • 衣邦人上门定制靠谱吗百度seo优化多少钱
  • 网络购物平台哪个最好咸宁网站seo
  • 常用来做网站的首页想做电商应该怎么入门
  • 关于门户网站建设经费的报告百度站长工具
  • 品牌和网站建设黑帽seo排名优化
  • 深圳做网站哪家便宜b站免费建网站
  • wordpress网站微信支付百度收录排名
  • ps 制作网站搜索引擎的网址有哪些
  • 中国建设银行的网站河南seo关键词排名优化
  • wordpress 局域网访问不了搜索引擎排名优化技术
  • wordpress 网站地图网站托管维护
  • 网站点击滚动图片代码青岛seo网站排名优化
  • 商城网站建设定制网站建设seo排名优化的方法