Python2快要退休了,让我们赶快来学习Python3的那些奇淫技巧吧!

  • A+
所属分类:python网络爬虫

在我看来,基本上可以不负责任地认为,Python 可以做任何事情。无论是从入门级选手到专业级选手都在做的爬虫,还是Web 程序开发、桌面程序开发还是科学计算、图像处理,Python都可以胜任。

Python2快要退休了,让我们赶快来学习Python3的那些奇淫技巧吧!

对新学习Python的小伙伴来说,既感受到了短代码的开心,也更愿意用到一些简短的Python写法,下面是我使用Python过程总收集的一些技巧,希望对你有所帮助。

1。列表推导

你有一个列表:包= [ 1, 2, 3,4, 5 ]

现在,您希望使所有元素都加倍,并使其看起来像:[ 2, 4, 6,8, 10 ]

大多数初学者,根据以前语言的经验,可能会这样做。

包= [ 1, 2, 3,4, 5 ]

我在射程内(莱恩(袋)):

袋子[袋子] [我] * 2

但还有更好的办法:

袋= [元* 2元包]

很简单吧?这称为Python的列表推导。

点击Trey Hunner的教程[ 1 ]看到更多关于表扣。

2。遍历列表

继续,或者上面的列表。

如果你可以尽量避免这样做:

包= [ 1, 2, 3,4, 5 ]

我在射程内(莱恩(袋)):

印刷品(袋[我])

应该用这个代替:

包= [ 1, 2, 3,4, 5 ]

我在袋子里:

印刷(I)

如果x是一个列表,您可以迭代它的元素。在大多数情况下,不需要元素的索引,但是如果不需要这样做,就使用枚举函数。它看起来像底部:

Python2快要退休了,让我们赶快来学习Python3的那些奇淫技巧吧!

Python2快要退休了,让我们赶快来学习Python3的那些奇淫技巧吧!

包= [ 1, 2, 3,4, 5 ]

用于索引,枚举中的元素(包):

打印(索引,元素)

这很简单。

三.元的互换性

如果你从java或C,Python,你可以用这个:

= 5

B = 10

#交换A和B

TMP =一

A = B

B = TMP

但是Python提供了一种更加自然和更好的方法!

= 5

B = 10

#交换A和B

a,b = b,a

它很漂亮,不是吗?

4。初始化列表

如果你想要一个10个整数和0个整数的列表,你可以先考虑一下:

=袋

在范围(10)_:

Bag.append(0)

改变方式:

包= [ 0 ] * 10

看,多么优雅。

注意:如果您的列表包含一个列表,这将生成一个浅拷贝。

例如:

bag_of_bags = [ [ 0 ] [ 5 ] * # [ 0 ]、[ 0 ]、[ 0 ]、[ 0 ]、[ 0 ] ]

bag_of_bags [ 0 ] [ 0 ] = 1 # [ [ 1 ]、[ 1 ]、[ 1 ]、[ 1 ]、[ 1 ] ]

哎呀!所有的列表都变了,我们只想更改第一个列表。

换一个:

bag_of_bags = [ [ 0 ]为_范围(5)]

# [ [ 0 ]、[ 0 ]、[ 0 ]、[ 0 ]、[ 0 ] ]

bag_of_bags [ 0 ] [ 0 ] = 1

# [ [ 1 ]、[ 0 ]、[ 0 ]、[ 0 ]、[ 0 ] ]

同时,记住:

“过早的优化是万恶之源”

问问自己,有必要初始化一个列表吗?

5。结构串

您通常需要打印字符串。如果有很多变量,请避免以下内容:

名字=“雷蒙德”

年龄= 22

born_in =“奥克兰,CA”

字符串“你好,我的名字叫“+姓名+“我# 39;M”+ STR(年龄)+“年”+“+”+“”。

打印(字符串)

嗯,看起来有多乱?你可以用优美简洁的方式替换它。格式。

用这种方法做。

名字=“雷蒙德”

年龄= 22

born_in =“奥克兰,CA”

字符串“你好,我的名字是{ 0 },我# 39;M { 1 }岁。

打印(字符串)

更好的!

6。返回

Python允许你在一个函数中返回多个元素,这使得生活更容易。但在拆元组时,这种合格的常见错误:

DEF二进制:

返回0, 1

结果=二进制

零=结果[ 0 ]

一个结果[ 1 ]

没有必要,你可以完全改变它。

DEF二进制:

返回0, 1

零,一=二进制

如果你需要的所有元素都回来了,一_下划线:

零,_ =二进制

它是如此有效!

7。参观

你也会经常写的关键,对(键,值)来为。

如果你试图访问一个关键不在的存在,你可能倾向于为了避免KeyError错误这样做。

国= { }

包= [ 2, 3, 1,2, 5, 6,7, 9, 2,7 ]

我在袋子里:

如果我在国:

国[我] = 1

其他的:

国[我] = 1

我在射程(10):

如果我在国:

打印(“计数:{ } { }。格式”(我国[我]))

其他的:

打印(“.计数:格式{ } }”(i,0))

但这是一个更好的方式来使用得到。

国= { }

包= [ 2, 3, 1,2, 5, 6,7, 9, 2,7 ]

我在袋子里:

国[我] = countr.get(I,0)+ 1

我在射程(10):

打印(“计数:{ } { }的”(。格式的我,countr.get(I,0)))

当然,你可以用setdefault。

它还使用了一种更简单、更昂贵的方法:

包= [ 2, 3, 1,2, 5, 6,7, 9, 2,7 ]

国= dict([((num,bag.count(努姆))数袋])

我在射程(10):

打印(“计数:{ } { }的”(。格式的我,countr.get(I,0)))

你也可以使用字典来推断。

国= {民:bag.count(努姆)数袋}

这两种方法很昂贵,因为每次调用计数时都会遍历它们。

8。利用图书馆

现有的图书馆只需要导入,你可以做你真正想做的事情。

或者,在前面的例子中,我们在列表中创建了许多函数计数。所以,有一个图书馆可以做这样的事情。

从集合进口计数器

包= [ 2, 3, 1,2, 5, 6,7, 9, 2,7 ]

国=计数器(袋)

我在射程(10):

打印(“计数:{ } { }。格式”(我国[我]))

使用图书馆的一些理由:

代码正确并经过测试。

他们的算法可能是最好的,所以他们跑得更快。

翻译后摘要:它们是明确的和文档友好的,您可以专注于那些尚未实现。

最后,它已经在那里了。你不需要改造轮子。

9。列表中的步骤/步骤

您可以指定起始点和停止点,如以下列表(开始:停止:步骤]。我们列出了列表中的前5个元素:

包= [ 0, 1, 2,3, 4, 5,6, 7, 8,9 ]

在包[ 5 ]元素:

打印(元)

这是切片,我们指定停止点是5,5个元素在停止之前将从列表中取出。

如果最后5个元素完成了呢?

包= [ 0, 1, 2,3, 4, 5,6, 7, 8,9 ]

对于元素袋[ 5 ]:

打印(元)

你没看到吗?5意味着从清单的最后取出5个元素。

如果你想在列表中的元素间隔上操作,你可以这样做:

包= [ 0, 1, 2,3, 4, 5,6, 7, 8,9 ]

对于指数,在枚举元素(袋):

如果索引% = 2 = 0:

打印(元)

但是你应该这样做:

包= [ 0, 1, 2,3, 4, 5,6, 7, 8,9 ]

在包[ 2 ]:元素:

打印(元)

#或范围

Bag = list (range (0,10,2))

印刷(袋)

这是清单中的步骤。列表[::2 ]意味着遍历列表并在两个步骤中同时取出一个元素。

可以使用列表:[……1 ]是一个很酷的翻转列表。

10。制表键或空格键

时间一长,混合标签和空间能够带来灾难,你会看到indentationerror:意想不到的缩进。无论您选择tab键还是空格键,您都应该在文件和项目中继续使用它。

使用空格而不是制表符的原因是所有编辑器中的制表符不一样。选项卡可以被视为2或8空间,这取决于所使用的编辑器。

在编写代码时,还可以使用空格定义制表符。通过这种方式,您可以选择为自己的选项卡使用几个空格。大多数Python用户使用4个空格。

Python2快要退休了,让我们赶快来学习Python3的那些奇淫技巧吧!

weinxin
我的微信公众号
爱真理,得永生!          爱在灵灵久博客,网罗天下,福利大家!

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: