谈谈 Python 那些不为人知的冷知识(五)

第一时间关注Python技术干货!

冷知识系列,直至今日,已经更新至第五篇。

前四篇传送门小明给你准备好了,还没阅读的可以学习一下。

还是老规矩,一篇只分享五个,有时间了就整理。不想错过的,千万记得关注一下。

01

空字符串计数

求一个字符串里,某子字符(串)出现的次数。在Python中使用 count() 函数,就可以轻松实现。

比如下面几个常规例子

>>>"aabb".count("a")

2

>>>"aabb".count("b")

2

>>>"aabb".count("ab")

1

但是如果使用空字符串呢,你可能想不到会是这样的结果。

>>>"aabb".count("")

5

具体原因,我不敢妄下结论。

由此我还衍生出另一个想法,实验了下。不知道空字符串,是一种什么样的存在,难道字母与字母之间 “缝隙” 也算吗?

>>>""in""

True

>>>""in"ab"

True

02

负负得正

从初中开始,我们就开始接触了这个概念。知道了,这和武侠世界里的,有点神似。

Python 作为一门高级语言,它的编写符合人类的思维逻辑,这其中也包括这个思想。

>>>5-3

2

>>>5--3

8

>>>5+-3

2

>>>5++3

8

>>>5---3

2

03

数值与字符串比较

在 Python2 中,数字可以与字符串直接比较。结果是数值永远比字符串小。

>>>100000000

True

>>>100000000

True

但在 Python3 中,却不行。

04

循环中的局部变量泄露

在Python 2中x的值在一个循环执行之后被改变了。

# Python2

>>> x =1

>>> [x for x in range(5)]

[,1,2,3,4]

>>> x

4

不过在Python3 中这个问题已经得到解决了。

# Python3

>>> x =1

>>> [x for x in range(5)]

[,1,2,3,4]

>>> x

1

05

让字典可排序

字典不可排序的思想,似乎已经根深蒂固。

# Python2.7.10

>>> mydict =

>>> mydict

{'1':1,'0':,'3':3,'2':2,'4':4}

在 Python3 中字典已经是有序的。

# Python3.6.7

>>> mydict =

>>> mydict

{'0':,'1':1,'2':2,'3':3,'4':4}

-END-

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181029G0BRRM00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券