我们已经准备好了,你呢?

2024我们与您携手共赢,为您的企业形象保驾护航!

点击上方“中国统计网”收藏星星吧!

python zip_pythonzip包如何安装_pythonzip压缩

如果在刚开始学习的时候能掌握这些方法,写出来的代码会更加漂亮。在这篇文章中,作者介绍了5种方法。可能我们在入门阶段还不太了解,但这5种技巧在实战中非常实用。

以下是五条实用技巧:

字符串操作

字符串本质上是元组,但是它有很多“操作”,最直观的就是 + 和 * 操作,分别代表重复和连接。

>>> my_string = "Hi Medium..!">>> print(my_string * 2)Hi Medium..!Hi Medium..!
>>> print(my_string + " I love Python" * 2)Hi Medium..! I love Python I love Python

另外如果想获取反向字符串,也可以直接使用[::-1]来索引:

>>> print(my_string[::-1])!..muideM iH>>> my_list = [1,2,3,4,5]
>>> print(my_list[::-1])[5, 4, 3, 2, 1]

如果列表元素都是字符串,那么我们可以快速使用 join() 方法将所有元素连接在一起:

>>> word_list = ["awesome", "is", "this"]>>> print(' '.join(word_list[::-1]) + '!')this is awesome!

如上,我们使用 .join() 方法来连接列表元素,其中 " " 表示连接方式为空格。其实这种方法在自然语言处理中经常用到,比如我们将一个句子拆分成字符,那么处理完之后就需要使用 join() 来合并它们。

列表推导

如果你还不知道如何使用列表推导,那就现在就学习吧。正如本文作者所说,“当我第一次学习这种方法时,我的整个世界都改变了。”列表推导确实很强大。它不仅比一般方法更快,而且非常直观和易读。如果你想迭代列表以进行一些计算,现在就使用它。

让我们首先定义一个简单的函数,对一个变量求平方并加 5:

>>> def stupid_func(x):>>>     return x**2 + 5

如果我们想将此函数应用于列表中的奇数项,而不使用列表推导,我们通常会按如下方式编写:

>>> my_list = [1, 2, 3, 4, 5]>>> new_list = []>>> for x in my_list:>>>     if x % 2 != 0:>>>         new_list.append(stupid_func(x))>>> print(new_list)[6, 14, 30]

但是现在我们有了列表推导,因此上述代码可以等效地修改为:

>>> my_list = [1, 2, 3, 4, 5]>>> print([stupid_func(x) for x in my_list if x % 2 != 0])[6, 14, 30]

列表推导式的一般语法可以表示为[for item in list]。如果要添加一些布尔条件语句,可以将上述语法修改为[for item in list if]。其结构其实等同于以下内容。

>>> for item in list:>>>     if conditional:>>>         expression

上面的列表推导可以进一步简化,而无需定义新函数。

>>> print([x ** 2 + 5 for x in my_list if x % 2 != 0])[6, 14, 30]

和地图

是一个匿名函数,可能看起来有点奇怪,但一旦你理解了它,它就会变得非常直观和强大。

一般来说,函数比较小,不需要定义函数名。那么为什么需要匿名函数呢?简单来说,它们最常用于执行一些直观的操作,不需要标准函数定义,也不需要再次调用新的函数名。

我们以平方然后加 5 为例。之前我们定义了一个标准函数 def (x)。现在我们可以尝试一个匿名函数:

>>> stupid_func = (lambda x : x ** 2 + 5)>>> print([stupid_func(1), stupid_func(3), stupid_func(5)])[6, 14, 30]

那么我们为什么要使用上面的表达式呢?很大一部分原因是当我们想要执行一些简单的操作时,我们可以在不定义真正的函数的情况下做到这一点。例如,要对列表的元素进行排序,一种直观的方法是使用 () 方法:

>>> my_list = [2, 1, 0, -1, -2]>>> print(sorted(my_list))[-2, -1, 0, 1, 2]

这个默认只能按照从大到小或者从小到大排序,但是借助表达式,我们可以实现更灵活的排序标准。如下所示,我们想按照最小平方数对列表进行排序。可以用一个函数来定义key,告诉()方法如何排序。

>>> print(sorted(my_list, key = lambda x : x ** 2))[0, -1, 1, -2, 2]

Map 是一个简单的函数,它将函数应用于其他元素序列,例如列表。如果我们有两个列表,并且想要将这两个列表的相应元素相乘,我们可以使用函数和 map 快速实现此功能:

>>> print(list(map(lambda x, y : x * y, [1, 2, 3], [4, 5, 6])))[4, 10, 18]

上面的代码非常优雅,如果不使用它们,一般表达式需要这样写:

>>> x, y = [1, 2, 3], [4, 5, 6]>>> z = []>>> for i in range(len(x)):>>>     z.append(x[i] * y[i])>>> print(z)[4, 10, 18]

单行条件语句

如果我们使用条件语句,它很可能看起来像这样:

>>> x = int(input())>>> if x >= 10:>>>     print("Horse")>>> elif 1 < x < 10:>>>     print("Duck")>>> else:>>>     print("Baguette")

但实际上我们也可以把所有的条件都写在打印函数中,也就是说上面7行代码可以等价于下面这行:

print("Horse" if x >= 10 else "Duck" if 1 < x < 10 else "Baguette")

这个看起来真的很简洁。如果你看一下你之前写的代码,你会发现很多都可以改成这个表达式。

拉链()

前面介绍map()函数的时候,我们给出了将函数应用于两个并行列表的例子,但是zip()函数可以更简单地做到这一点。

如果我们有两个列表,第一个列表包含名字,第二个列表包含姓氏。使用 zip() 函数,我们可以将它们连接在一起,如下所示。

>>> first_names = ["Peter", "Christian", "Klaus"]>>> last_names = ["Jensen", "Smith", "Nistrup"]>>> print([' '.join(x) for x in zip(first_names, last_names)])['Peter Jensen', 'Christian Smith', 'Klaus Nistrup']

即zip将两个等长列表变成对,即

 (("Peter", "Jensen"), ("Christian", "Smith"), ("Klaus", "Nistrup"))。

结尾。

选自

二维码
扫一扫在手机端查看

本文链接:https://by928.com/5391.html     转载请注明出处和本文链接!请遵守 《网站协议》
我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、手机网站建设、网站备案等方面的需求,请立即点击咨询我们或拨打咨询热线: 13761152229,我们会详细为你一一解答你心中的疑难。

项目经理在线

我们已经准备好了,你呢?

2020我们与您携手共赢,为您的企业形象保驾护航!

在线客服
联系方式

热线电话

13761152229

上班时间

周一到周五

公司电话

二维码
微信
线