python学习学习——内置函数、数据结构、标准库的技巧(推荐)内置函数、数据结构、标准库的技巧(推荐)
主要介绍了python学习——内置函数、数据结构、标准库的技巧,文中通过示例代码介绍的非常详细,对大家
的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
我作为一名python初学者,为了强化记忆有必要把看过的一些优秀的文章中一些技巧通过notebook的方式练习一次。我认为
这么做有几个优点:一来加深印象;二来也可以将学习过的内容保存方便日后查阅;第三也可以培养我写博的习惯(一直都没
那个习惯)
jupyter notebook格式的文件github下载:
身为程序员除了需要具备解决问题的思路以外,代码的质量和简洁性也很关键,今天又学习到了一些觉得自己很高级的内容跟
大家分享,内容包括:
1. Python内置函数开始
2. Python对数据结构的天然支持
3. Python强大的标准库
选择正确的内置功能选择正确的内置功能
Python有一个大型标准库,但只有一个内置函数的小型库,这些函数总是可用的,不需要导入。它们每一个都值得我们仔细
研究,但是在研究前,我还是给大家一些小的提示,尤其是在其中一些函数的情况下,可以用什么替代更好。
1. 使用使用enumerate()而不是而不是range()进行迭代进行迭代
在面试中,这种情况可能比任何其他情况都要多:您有一个元素列表,您需要遍历列表,同时访问索引和值。
有一个名为FizzBuzz的经典编码面试问题可以通过迭代索引和值来解决。在FizzBuzz中,你将获得一个整数列表,任务是执
行以下操作:
用“fizz”替换所有可被3整除的整数
用“buzz”替换所有可被5整除的整数
将所有可被3和5整除的整数替换为“fizzbuzz”
通常,开发人员将使用range()解决此问题:
numbers = [45, 22, 14, 65, 97, 7]
for i in range(len(numbers)):
if numbers[i] % 3 == 0 and numbers[i] % 5 == 0:
numbers[i] = 'fizzbuzz'
elif numbers[i] % 3 == 0:
numbers[i] = 'fizz'
elif numbers[i] % 5 == 0:
numbers[i] = 'buzz'
numbers
['fizzbuzz', 22, 14, 'buzz', 97, 7]
Range允许你通过索引访问数字元素,并且对于某些特殊情况也是一个很有用的工具。但在这种情况下,我们希望同时获取每
个元素的索引和值,更优雅的解决方案使用enumerate():
numbers = [45, 22, 14, 65, 97, 7]
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'
numbers
['fizzbuzz', 22, 14, 'buzz', 97, 7]
对于每个元素,enumerate()返回一个计数器和元素值。计数器默认为0,也是元素的索引。不想在0开始你的计数?只需使用
可选的start参数来设置偏移量:
numbers = [45, 22, 14, 65, 97, 72]
for i, num in enumerate(numbers, start=52):
print(i, num)
52 45
53 22