Python不像想象那么简单!学会这些小技巧,离精通更进一步
【Python不像想象那么简单!学会这些小技巧,离精通更进一步】
全文共1891字 , 预计学习时长8分钟
本文插图
图源:unsplash
Python看起来似乎是一种任何人都可以学习的简单语言 , 但实际上 , 学会不等于精通 , Python的“后劲儿”超乎我们的想象 , 它容易入门却很难掌握 。 在Python中 , 一个通常有多种处理方法 , 但很容易出错的地方很多;或者仅仅因为不知道模块的存在 , 你就得重新创建标准库 , 这很浪费时间 。
Python标准库是一个巨大的野兽 , 它的生态系统绝对是庞大的 。 虽然Python模块可能有200万千兆字节 , 好在有一些使用技巧存在 , 我们可以用Python中与科学计算相关的标准库和包来学习 。
1.反转字符串
虽然看似是很基础的操作 , 但是用char循环来反转字符串可能会非常繁琐麻烦 。 幸运的是 , Python包含了一个简单的内置操作来准确地执行这个任务 , 我们只需访问字符串上的索引::-1 。
a = ''!dlrow olleH'' backward = a[::-1]
本文插图
2.Dims作为变量
在大多数语言中 , 为了将数组放入一组变量中需迭代循环值 , 或按位置访问暗点 , 如下所示:
firstdim = array[1]
然而 , 在Python中有一种更好更快的方法 。 为了将一列值改为变量 , 可以简单地将变量名设置为与数组长度相同的数组:
array = [5, 10, 15, 20] five, ten, fift, twent = array
本文插图
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]
本文插图
5.列举
本文插图
图源:unsplash
不了解列举那可不太行 。 列举可以获取列表中某些值的索引 , 在数据科学中使用数组而不是数据帧时 , 这就特别有用:
for i,w in enumerate(array): print(i,w)
本文插图
6.命名切片
Python中 , 分割列表非常简单 , 各式各样优秀工具都能做到 。 特别好的一点是 , 它还能够给列表命名 , 这对于Python中的线性代数特别有用:
a = [0, 1, 2, 3, 4, 5] LASTTHREE = slice(-3, None) slice(-3, None, None) print(a[LASTTHREE])
- 悠家娱乐 VS Code 中的 Python 体验,#新闻拍一拍# 微软推出 Pylance,改善
- 天天养生汇|更年期要持续多久?医生:注意这3点,比我们想象要快
- 「高超音速导弹」全世界最先进3款武器现身,美国不得不承认,中国远比想象中强大
- Python1行代码实现Python数据分析:图表美观清晰,自带对比功能丨开源
- 分享食谱|生活中常见的饼,换种吃法,有你想象不到的美味
- 小爱说游戏|和平精英:黄金空投是升级版吗?豪华装备让你无法想象,太棒了
- 英诺天使李竹:应对危机,我们要更有想象力地投资
- 女仆报新闻|陈若仪婆婆去店里吃粽子,谁注意一个粽子的价格?贫穷限制想象
- 蔡徐坤|蔡徐坤节目中落水脱妆,素颜下皮肤差别大,不像22岁的状态
- 澎湃新闻|《锦绣南歌》:浪费秦昊+李沁这个有想象力的组合