0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

python的这些骚操作,你都了解了吗?

lviY_AI_shequ 来源:数据科学杂谈 2020-05-12 09:40 次阅读

随着深度学习机器学习等技术的火热发展,python 作为一种面向对象的动态类型语言也跟着火了起来。不少计算机科班出身的同学,在大学期间学习的多是 C++java,虽然转向 Python 难度并不大,但是有些 Python 使用的小技巧,由于受限于 C++和 java 思维的限制,可能不会往那方面去想(毕竟当我知道了一些 Python 的技巧之后,直接惊叹“卧槽,还能这样搞?!”)

元素互换

之前,我们在给 a 和 b 交换值时,通常的操作是:

a = 10b = 5temp = aa = bb = temp

Python 将这一操作简单化了

a = 10b = 5a,b = b,a

列表解析

列表解析是 Python 迭代机制的一种骚操作。有这样一个任务,给定一个由正整数组成的 list,然后删除里面的偶数。比如a = [1,2,3,4,5,6,8],注意这里我很骚的取了[1,2,3,4,5,6,8]而不是[1,2,3,4,5,6,7]。你会怎么做?

a = [1,2,3,4,5,6,8]for item in a: if item%2==0: a.remove(item)

输出是[1,3,5,8],并没有成功,是不是?如果你拿[1,2,3,4,5,6,7]作为例子,返回的结果确实是你想要的结果,但是那只是巧了。

python 怎么做呢?

a = [1,2,3,4,5,6,8]a = [item for item in a if item%2 != 0]

是不是骚的很?

Counter

from collections import Countera = ['a', 'a', 'a', 'b', 'b', 'c']ptiny(dict(Counter(a)))

输出为:

{'a': 3, 'b': 2, 'c': 1}

Counter 可以帮助我们自动的去统计一个 list 中各个元素的个数。这个在哪里常用呢?在我们 NLP 中统计词频时会经常用到,至少笔者是喜欢用这个函数的。

zip 函数

先上代码:

a = [1,2,3]b = ['a','b','c']for x, y in zip(a,b): print (x, y)

输出为

1 a2 b3 c

这个有什么用呢?在用 Python 做深度学习或机器学习时,需要构造训练样本和标签,那么我们有时可能会逐条获取一条训练数据,通过迭代 zip,就能一条一条的成对取出数据了。当然了,zip()中可以添加任意多个可迭代的元素,不仅仅限于例子中的两个。

exec

这是我接触 Python 以来,见到的最骚最骚的操作了,而且是我在学习 java 时就梦寐以求的操作:我希望我能动态输入一段代码(字符串),然后程序可以运行之。学过 java 的人都知道,这是不行的,但是尼玛 python 就行。

code = """from collections import Countera = ['a', 'a', 'a', 'b', 'b', 'c']print(dict(Counter(a)))"""exec(code)

大家可以试一下,真的可以。骚出天际了。

当然了,你的确可以通过动态输入的方式,让其运行字符串代码,比如:

code = input()

然后你输入from collections import Counter; a = ['a', 'a', 'a', 'b', 'b', 'c']; print(dict(Counter(a)))输入的字符串中,每一句代码之间用分号;分割,这一点和 java 们很像。然后再运行

exec(code)

会得到同样的结果。这个操作大家在用 python 做科学计算的时候,可能用不到,但是当你用 python 写项目的时候,可能就能派上用场了。

怎么样,python 的这些骚操作,你都了解了吗?

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • C++
    C++
    +关注

    关注

    21

    文章

    2066

    浏览量

    72892
  • 机器学习
    +关注

    关注

    66

    文章

    8105

    浏览量

    130542
  • python
    +关注

    关注

    51

    文章

    4669

    浏览量

    83457

原文标题:骚操作又来了,实用的python“奇技淫巧”

文章出处:【微信号:AI_shequ,微信公众号:人工智能爱好者社区】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    查看python安装路径的方法

    Python是一种高级编程语言,常用于开发Web应用、数据分析、人工智能等领域。在使用Python进行开发之前,我们需要先安装Python解释器,并了解
    的头像 发表于 11-29 14:54 995次阅读

    python调用windows命令

    Windows命令,提供一些实际的示例和代码。 首先,我们需要了解一些基本概念。Windows命令是一种命令行界面(CLI),它允许用户通过键入命令来与操作系统进行交互。Python提供了一个名为 subprocess 的内置模
    的头像 发表于 11-29 14:34 471次阅读

    了解这些就可以搞懂 IGBT

    了解这些就可以搞懂 IGBT
    的头像 发表于 11-24 15:47 495次阅读
    <b class='flag-5'>了解</b><b class='flag-5'>这些</b>就可以搞懂 IGBT

    如何在Python中使用Scapy进行抓包操作

    文章将介绍如何使用 Python 来进行简单的抓包操作。 2. Python 中的抓包库 在 Python 中,有很多优秀的抓包库,例如 Scapy、dpkt、pcapy 等等。在本文
    的头像 发表于 11-01 14:47 2026次阅读

    如何用Python来实现文件系统的操作功能

    近几年随着 Python 的热度不断上涨,人们渐渐使用这门编程语言来进行一些自动化操作,以节省重复劳动带来的效率低下,那么必定会涉及到对 文件系统的操作 ,包括文件的 增、删、改、查 等等,今天
    的头像 发表于 10-30 14:27 187次阅读
    如何用<b class='flag-5'>Python</b>来实现文件系统的<b class='flag-5'>操作</b>功能

    Python教你用 Rows 快速操作csv文件

    Rows 是一个专门用于操作表格的第三方Python模块。 只要通过 Rows 读取 csv 文件,她就能生成可以被计算的 Python 对象。 相比于 pandas 的 pd.read_csv
    的头像 发表于 10-21 10:18 248次阅读

    MOS管用作防反接的接法,理解了吗

    电路防反接,你真的会用了吗?MOS管用作防反接的接法,理解了吗?”,做过电子产品设计的工程师,都会在电源部分加入防反接电路,主要目的就是怕电源的GND和正极接反,导致电路板烧毁。
    发表于 10-08 15:26 1210次阅读
    MOS管用作防反接的接法,理<b class='flag-5'>解了吗</b>?

    不可错过!人工神经网络算法、PID算法、Python人工智能学习等资料包分享(附源代码)

    据挖掘工具包。 曾经因为NLTK的缘故开始学习Python,之后渐渐成为我工作中的第一辅助脚本语言,虽然开发语言是C/C++,但平时的很多文本数据处理任务交给了Python这些年来
    发表于 09-13 16:41

    python有什么用 如何用python创建数据库

    开发、游戏开发、机器学习、自然语言处理等领域。 在本文中,我们将介绍如何使用Python创建数据库。首先,让我们了解一下什么是数据库。 什么是数据库? 数据库是一种用于存储、管理和检索数据的软件系统。它们使我们能够轻松、快速地访问和操作
    的头像 发表于 08-28 16:41 776次阅读

    高低温试验箱的操作规范你注意了吗

    高低温试验箱的操作规范你注意了吗
    的头像 发表于 08-23 16:01 406次阅读
    高低温试验箱的<b class='flag-5'>操作</b>规范你注意<b class='flag-5'>了吗</b>?

    动态库封装成python模块的方法

    之前的文章 将静态库封装成 python 模块中讲解了如何将静态库封装成 python 模块,静态库封装相对来说还是有点复杂,今天来介绍下动态库封装成 python 模块的方法。
    发表于 07-13 15:24 376次阅读

    几种晶体管的区别,了解了吗

    晶体管
    YS YYDS
    发布于 :2023年07月04日 22:18:41

    python文件操作是什么

    一、什么是文件操作 一个完整的程序一般都包括数据的存储和读取;我们在前面写的程序数据都没有进行实际的存储,因此python解释器执行完数据就消失了 实际开发中,我们经常需要从外部存储介质(硬盘、光盘
    的头像 发表于 06-21 17:15 1439次阅读
    <b class='flag-5'>python</b>文件<b class='flag-5'>操作</b>是什么

    一文带你了解Python的使用

    各位ICer对面向对象的语言Python想必并不陌生,作为继Perl之后最知名,且一直持续保持着版本 更新的脚本语言
    的头像 发表于 05-23 17:16 702次阅读
    一文带你<b class='flag-5'>了解</b><b class='flag-5'>Python</b>的使用

    一文带你了解Python的使用

    各位ICer对面向对象的语言Python想必并不陌生,作为继Perl之后最知名,且一直持续保持着版本 更新的脚本语言,Python已经更新到了3.62版本
    的头像 发表于 05-04 09:58 568次阅读
    一文带你<b class='flag-5'>了解</b><b class='flag-5'>Python</b>的使用