Python不像想象那么简单!学会这些小技巧,离精通更进一步

【Python不像想象那么简单!学会这些小技巧,离精通更进一步】
全文共1891字 , 预计学习时长8分钟
Python不像想象那么简单!学会这些小技巧,离精通更进一步
本文插图
图源:unsplash
Python看起来似乎是一种任何人都可以学习的简单语言 , 但实际上 , 学会不等于精通 , Python的“后劲儿”超乎我们的想象 , 它容易入门却很难掌握 。 在Python中 , 一个通常有多种处理方法 , 但很容易出错的地方很多;或者仅仅因为不知道模块的存在 , 你就得重新创建标准库 , 这很浪费时间 。
Python标准库是一个巨大的野兽 , 它的生态系统绝对是庞大的 。 虽然Python模块可能有200万千兆字节 , 好在有一些使用技巧存在 , 我们可以用Python中与科学计算相关的标准库和包来学习 。
1.反转字符串
虽然看似是很基础的操作 , 但是用char循环来反转字符串可能会非常繁琐麻烦 。 幸运的是 , Python包含了一个简单的内置操作来准确地执行这个任务 , 我们只需访问字符串上的索引::-1 。
a = ''!dlrow olleH'' backward = a[::-1]
Python不像想象那么简单!学会这些小技巧,离精通更进一步
本文插图
2.Dims作为变量
在大多数语言中 , 为了将数组放入一组变量中需迭代循环值 , 或按位置访问暗点 , 如下所示:
firstdim = array[1]
然而 , 在Python中有一种更好更快的方法 。 为了将一列值改为变量 , 可以简单地将变量名设置为与数组长度相同的数组:
array = [5, 10, 15, 20] five, ten, fift, twent = array
Python不像想象那么简单!学会这些小技巧,离精通更进一步
本文插图
3.生成器的next()迭代
在编程中的大多数正常情况下 , 可以访问一个索引 , 并使用计数器获取位置数字 , 计数器将只是一个值 , 添加到:
array1 = [5, 10, 15, 20] array2 = (x ** 2 for x in range(10)) counter = 0for i in array1:# This code wouldn't work because 'i' is not in array2. # i = array2[i] i = array2[counter] #^^^ This code would because we areaccessing the position of i
我们也可以用next()代替它 。 Next使用一个迭代器 , 该迭代器将当前位置存储在内存中 , 并在后台迭代列表:
g = (x ** 2 for x in range(10)) print(next(g)) print(next(g))
4.智能拆包
迭代地解压值可能会非常耗费时力 , Python中有几种不错的方法可以用来解压列表的方法 。 其中一个是* , 它将填充未分配的值并将它们添加到变量名下的新列表中 。
a, *b, c = [1, 2, 3, 4, 5]
Python不像想象那么简单!学会这些小技巧,离精通更进一步
本文插图
5.列举
Python不像想象那么简单!学会这些小技巧,离精通更进一步
本文插图
图源:unsplash
不了解列举那可不太行 。 列举可以获取列表中某些值的索引 , 在数据科学中使用数组而不是数据帧时 , 这就特别有用:
for i,w in enumerate(array): print(i,w)
Python不像想象那么简单!学会这些小技巧,离精通更进一步
本文插图
6.命名切片
Python中 , 分割列表非常简单 , 各式各样优秀工具都能做到 。 特别好的一点是 , 它还能够给列表命名 , 这对于Python中的线性代数特别有用:
a = [0, 1, 2, 3, 4, 5] LASTTHREE = slice(-3, None) slice(-3, None, None) print(a[LASTTHREE])
Python不像想象那么简单!学会这些小技巧,离精通更进一步