根据StackOverflow的介绍,Python是增长最快的编程语言。 例如,《
福布斯》的一份报告说,Python的使用量增长了456%。 Netflix,IBM和全球数千家公司都使用Python。 让我们不要忘记Dropbox。 该公司的服务也使用Python编写。 根据
Dice的研究,当今对Python领域的知识非常需求,并且编程语言
的流行
指数表明Python是当今世界上最受欢迎的语言。 如果将Python与其他语言进行比较,事实证明它具有以下优势:
- 与绝大多数平台和操作系统兼容。
- 存在许多开源框架和工具。
- 易于阅读和维护的代码。
- 可靠的标准库。
- 通过测试制定标准的机制。

Python技巧
在这里,我想提醒您注意有关Python编程的10条有用技巧。 他们非常有能力为您的日常工作提供帮助。
▍1。 字符串串联
如果需要连接字符串列表,则可以在
for
循环中执行此操作,一次向最终结果添加一行。 但是,这种方法效率很低,特别是如果列表足够长的话。 在Python中,字符串是不可变的实体。 结果,每个字符串串联操作意味着您需要将几行复制到新行。
解决此问题的更有效方法是使用
join()
函数:
characters = ['p', 'y', 't', 'h', 'o', 'n'] word = "".join(characters) print(word)
▍2。 使用列表生成器
列表生成器用于从其他可迭代对象创建新列表。 由于生成器返回列表,因此其描述是针对列表中每个元素执行的表达式,并用方括号括起来。 这也包括
for
遍历每个元素的
for
循环的描述。 由于Python解释器针对遍历列表时重复的模板进行了优化,因此列表生成器使您可以加快列表的处理速度。
例如,考虑使用列表生成器查找前五个整数的平方:
m = [x ** 2 for x in range(5)] print(m)
现在,我们找到出现在两个列表中的每个列表中的数字:
list_a = [1, 2, 3, 4] list_b = [2, 3, 4, 5] common_num = [a for a in list_a for b in list_b if a == b] print(common_num)
▍3。 使用枚举()遍历列表
enumerate()
方法将数字添加到迭代的集合中,并返回一个对象,该对象生成由元素索引和该元素本身组成的成对元素。
让我们解决采访中提供的经典FizzBuzz问题。 这是完成此任务的条件:“编写一个显示数字列表的程序。 在这种情况下,将显示嘶嘶声,而不是3的倍数,而不是5的倍数-嗡嗡声,而不是3和5的倍数-嘶嘶声。
numbers = [30, 42, 28, 50, 15] for i, num in enumerate(numbers): if num % 3 == 0 and num % 5 == 0: numbers[i] = 'fizzbuzz' elif num % 3 == 0: numbers[i] = 'fizz' elif num % 5 == 0: numbers[i] = 'buzz' print(numbers)
▍4。 将zip()与列表一起使用
假设您需要组合几个相同长度的列表并显示结果列表。 与其他情况一样,可以解决类似的问题,可以说是“在额头上”,或者可以使用通用
zip()
函数之类的方法:
countries = ['France', 'Germany', 'Canada'] capitals = ['Paris', 'Berlin', 'Ottawa'] for country, capital in zip(countries,capitals): print(country, capital)
5英镑 使用itertools模块
itertools
Python模块是一组用于处理迭代器的工具。 该模块包括许多用于生成各种序列的工具。 在这里,作为示例,考虑
itertools.combinations()
方法。 此方法用于创建组合。 还有一些用于对输入值进行分组的工具。
为了理解以上内容,让我们考虑一个真实的例子。
想象一下,在某个锦标赛中有四支球队参加。 在小组赛中,举行每支球队与其他每支球队的比赛。 您的任务是生成将互相对抗的团队的所有可能组合。
看下面的代码:
import itertools friends = ['Team 1', 'Team 2', 'Team 3', 'Team 4'] list(itertools.combinations(friends, r=2))
在这里,您需要注意以下事实:值的顺序并不重要。 由于组合
('Team 1', 'Team 2')
和
('Team 2', 'Team 1')
代表同一对球队,因此最终名单中仅包括其中一个。 同样,您可以使用
itertools.permutations()
方法和此模块的其他方法。 有关
itertools
的详细指南,请参见
此处 。
▍6。 使用Python集合
Python集合是容器数据类型。 特别是这些是列表,集合,元组,字典。
collections
模块为开发人员提供了高性能的数据类型,这些数据类型有助于改进代码,使其更简洁并易于使用。 该模块包含许多有用的方法。 在这里,我们看一下
Counter()
方法。
此方法采用一个可迭代的对象(例如列表或元组),并返回一个字典,其中包含有关要检查的列表中不同对象的数量的信息(“计数器字典”)。 此类字典的键是可迭代对象中表示的唯一元素,而值是此类元素的数量。
要创建
Counter
对象,您需要将可迭代对象(例如列表)传递给
Counter()
方法:
import collections count = collections.Counter(['a','b','c','d','b','c','d','b']) print(count)
可以在
这里找到有关
collections
模块的详细信息。
▍7。 将两个列表转换成字典
假设我们有两个列表。 其中一个包含学生的姓名,第二个包含他们的成绩。 如何将这两个列表转换成字典? 如果我们为此使用
zip()
函数,则可以按以下方式解决此问题:
students = ["Peter", "Julia", "Alex"] marks = [84, 65, 77] dictionary = dict(zip(students, marks)) print(dictionary)
8英镑 使用生成器功能
生成器函数是行为类似于迭代器的函数。 它们使程序员可以快速轻松地创建整洁的迭代器。 考虑一个揭示这个想法的例子。
假设我们需要找到从1开始的前100,000,000个整数的平方和。
这个任务似乎很简单。 使用列表生成器可以毫无问题地解决它。 但是,这里的问题是输入数据量很大。 看下面的代码:
import time t1 = time.clock() sum([i * i for i in range(1, 100000000)]) t2 = time.clock() time_diff = t2 - t1 print(f"It took {time_diff} Secs to execute this method")
如果我们需要找到更多数量的平方和,那么事实证明该技术不能很好地找到它们,因为找到解决方案需要花费大量时间。 在这种情况下,Python生成器函数将为我们提供帮助。 在我们的情况下,为了从使用列表生成器切换到生成器功能,只需将生成器表达式中的方括号更改为圆括号即可。 我们这样做并找到解决问题所需的时间:
import time t1 = time.clock() sum((i * i for i in range(1, 100000000))) t2 = time.clock() time_diff = t2 - t1 print(f"It took {time_diff} Secs to execute this method")
如您所见,现在解决同一问题所需的时间更少。 随着输入数据的增加,这种影响将更加明显。
这是有关生成器功能的材料。
▍9。 从函数返回多个值
Python能够从一个函数返回多个值。 在其他许多流行的编程语言中都找不到。 要从一个函数返回多个值,它们必须用逗号分隔。 基于此值列表,Python将创建一个元组并将其返回到调用该函数的位置。 这是一个例子:
def multiplication_division(num1, num2): return num1*num2, num1/num2 product, division = multiplication_division(15, 3) print("Product =", product, "Quotient =", division)
▍10。 使用sorted()函数
在Python中,使用内置的
sorted()
函数对某些数据序列进行排序非常容易,它可以解决所有相关任务。 此函数对任何序列(列表,元组)进行排序,并始终返回带有排序元素的列表。 考虑一个以升序对数字列表进行排序的示例:
sorted([3,5,2,1,4])
这是一个以降序对行列表进行排序的示例:
sorted(['france', 'germany', 'canada', 'india', 'china'], reverse=True)
总结
本文介绍了10条有用的Python编程技巧,这些技巧在日常工作中可能会很有用。 我们希望您能从中找到有益的东西。
亲爱的读者们! 我们鼓励有经验的Python开发人员谈论他们经常使用的有用的Python功能。
