文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Python的10个神奇的技巧

2024-12-11 21:53

关注

尽管从表面上看,Python似乎是任何人都可以学习的一种简单语言,但确实如此,许多人可能惊讶地知道一个人可以熟练掌握该语言。 Python是其中的一门很容易学习的东西,但可能很难掌握。 在Python中,通常有多种处理方法,但是很容易做错事情,或者重新发明标准库并浪费时间,这仅仅是因为您不知道模块的存在。

不幸的是,Python标准库是一个巨大的野兽,此外,其生态系统绝对是巨大的。 尽管可能有200万千兆字节的Python模块,但是您可以使用通常与Python中的科学计算相关的标准库和软件包学习一些有用的技巧。

№1:反向串

尽管看似基本,但使用char循环反转字符串可能非常繁琐且令人讨厌。 幸运的是,Python包含一个简单的内置操作来精确地执行此任务。 为此,我们只需访问字符串上的索引::-1。

 

  1. a = "!dlrow olleH" 
  2.  
  3. backward = a[::-1] 

 

 

 

№2:变暗作为变量

在大多数语言中,为了将数组放入一组变量中,我们需要迭代遍历值或按位置访问暗点,如下所示:

 

  1. firstdim = array[1] 

但是,在Python中,有一种更酷的方法。 为了将值列表更改为变量,我们可以简单地将变量名设置为等于数组,且数组长度相同:

 

  1. array = [5, 10, 15, 20] 
  2.  
  3. five, ten, fift, twent = array 

 

 

 

№3:Itertools

如果您打算花任何时间在Python上花费任何时间,那么您肯定会想要熟悉itertools。 Itertools是标准库中的一个模块,可让您不断解决迭代问题。 它不仅使编写复杂的循环变得容易得多,而且使您的代码更快,更简洁。 这只是Itertools用法的一个示例,但有数百个:

 

  1. c = [[1, 2], [3, 4], [5, 6]] 
  2.  
  3. # Let's convert this matrix to a 1 dimensional list.import itertools as 
  4.  
  5. itnewlist = list(it.chain.from_iterable(c)) 

 

№4:智能开箱

迭代地解压缩值可能会非常耗时且费力。 幸运的是,Python有几种很酷的方式可以解压缩列表! 一个例子是*,它将填充未分配的值并将它们添加到变量名下的新列表中。

 

  1. a, *b, c = [1, 2, 3, 4, 5] 

 

 

№5:枚举

如果您不了解枚举,则可能应该熟悉它。 枚举将允许您获取列表中某些值的索引。 当使用数组而不是数据框架时,这在数据科学中特别有用。

  1. for i,w in enumerate(array): 
  2.  
  3. print(i,w) 

 

 

№6:名字切片

在Python中拆分列表非常简单! 可以使用各种各样的出色工具,但是肯定有价值的一个功能是可以命名列表的片段。 这对于Python中的线性代数特别有用。

  1. a = [0, 1, 2, 3, 4, 5] 
  2.  
  3. LASTTHREE = slice(-3, None) 
  4.  
  5. slice(-3, None, None) 
  6.  
  7. print(a[LASTTHREE]) 

 

 

 

№7:组相邻列表

当然可以在for循环中相当容易地对相邻循环进行分组,特别是通过使用zip(),但这当然不是最好的处理方式。 为了使事情变得更加轻松和快捷,我们可以使用zip编写一个lambda表达式,该表达式将对我们的相邻列表进行分组,如下所示:

 

  1. a = [1, 2, 3, 4, 5, 6] 
  2.  
  3. group_adjacent = lambda a, k: zip(*([iter(a)] * k)) 
  4.  
  5. group_adjacent(a, 3) 
  6.  
  7. [(1, 2, 3), (4, 5, 6)] 
  8.  
  9. group_adjacent(a, 2) 
  10.  
  11. [(1, 2), (3, 4), (5, 6)] 
  12.  
  13. group_adjacent(a, 1) 

 

№8:生成器的next()迭代

在编程的大多数正常情况下,我们可以使用一个计数器来访问一个索引并获取我们的仓位号,该计数器将只是添加到以下值的值:

 

  1. array1 = [5, 10, 15, 20] 
  2.  
  3. array2 = (x ** 2 for x in range(10)) 
  4.  
  5. counter = 0for i in array1: 
  6.  
  7. # This code wouldn't work because 'i' is not in array2. 
  8.  
  9. # i = array2[i] 
  10.  
  11. i = array2[counter] 
  12.  
  13. # ^^^ This code would because we are accessing the position of i 

 

但是,我们可以使用next()代替它。 Next使用一个迭代器,该迭代器将当前位置存储在内存中,并在后台遍历列表。

 

  1. g = (x ** 2 for x in range(10)) 
  2.  
  3. print(next(g)) 
  4.  
  5. print(next(g)) 

 

 

 

№9:Counter

标准库中另一个很棒的模块是集合,我今天想向您介绍的是集合中的计数器。 使用Counter,我们可以轻松获得列表的计数。 这对于获取数据中的值总数,获取数据的空计数以及查看数据的唯一值很有用。 我知道你在想什么

"为什么不只使用Pandas?"

这当然是正确的观点。 但是,使用Pandas进行自动化无疑会更加困难,并且只是在部署算法时需要将其添加到虚拟环境中的另一个依赖项。 此外,Python中的计数器类型具有Pandas系列所没有的许多功能,这使其在某些情况下更加有用。

 

  1. A = collections.Counter([1, 1, 2, 2, 3, 3, 3, 3, 4, 5, 6, 7]) 
  2.  
  3.  
  4. Counter({3: 4, 1: 2, 2: 2, 4: 1, 5: 1, 6: 1, 7: 1}) 
  5.  
  6. A.most_common(1) 
  7.  
  8. [(3, 4)] 
  9.  
  10. A.most_common(3) 
  11.  
  12. [(3, 4), (1, 2), (2, 2)] 

 

№10:出队

收集模块中另一个很棒的事情是出队。 看看我们可以用这种类型做的所有整洁的事情!

 

  1. import collections 
  2.  
  3. Q = collections.deque() 
  4.  
  5. Q.append(1) 
  6.  
  7. Q.appendleft(2) 
  8.  
  9. Q.extend([3, 4]) 
  10.  
  11. Q.extendleft([5, 6]) 
  12.  
  13. Q.pop() 
  14.  
  15. Q.popleft() 
  16.  
  17. Q.rotate(3) 
  18.  
  19. Q.rotate(-3) 
  20.  
  21. print(Q) 

 

 

 

来源:今日头条内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯