精华内容
下载资源
问答
  • 本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业...Python 中有很多内置函数帮你提高工作效率!一:根据条件在序列中筛选数据1.假设有一个数字列表 data, 过滤列表中的负数使用列表推导式:result ...

    本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理

    以下文章来源于腾讯云 作者:Python编程与实战

    工作中经常要处理各种各样的数据,遇到项目赶进度的时候自己写函数容易浪费时间。

    Python 中有很多内置函数帮你提高工作效率!

    一:根据条件在序列中筛选数据

    1.假设有一个数字列表 data, 过滤列表中的负数

    使用列表推导式:

    result = [i for i in data if i >= 0]

    使用 fliter 过滤函数:

    result = fliter(lambda x: x>= 0, data)

    2.学生的数学分数以字典形式存储,筛选其中分数大于 80 分的同学

    d = {x:randint(50, 100) for x in range(1, 21)}

    {k: v for k, v in d.items() if v > 80}

    二:对字典的键值对进行翻转

    使用 zip() 函数

    zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。

    >>> s1 = {x: randint(1, 4) for x in sample('abfcdrg', randint(1,5))}

    >>> s1

    {'b': 1, 'f': 4, 'g': 3, 'r': 1}

    >>> d = {k:v for k, v in zip(s1.values(), s1.keys())}

    >>> d

    {1: 'r', 4: 'f', 3: 'g'}

    三. 统计序列中元素出现的频度

    1.某随机序列中,找到出现次数最高的3个元素,它们出现的次数是多少?

    构造随机序列如下:

    data = [randint(0,20) for _ in range(20)]

    方法1: 可以使用字典来统计,以列表中的数据为键,以出现的次数为值

    from random import randint

    def demo():

    data = [randint(0, 20) for _ in range(30)]

    # 列表中出现数字出现的次数

    d = dict.fromkeys(data, 0)

    for v in li:

    d[v] += 1

    return d

    方法2:直接使用 collections 模块下面的 Counter 对象

    >>> data = [randint(0, 20) for _ in range(30)]

    >>> data

    [7, 8, 5, 16, 10, 16, 8, 17, 11, 18, 11, 17, 15, 7, 2, 19, 5, 16, 17, 17, 12, 19, 9, 10, 0, 20, 11, 2, 11, 10]

    >>> c2 = Counter(data)

    >>> c2

    Counter({17: 4, 11: 4, 16: 3, 10: 3, 7: 2, 8: 2, 5: 2, 2: 2, 19: 2, 18: 1, 15: 1, 12: 1, 9: 1, 0: 1, 20: 1})

    >>> c2[14]

    4

    >>> c2.most_common(3) # 统计频度出现最高的3个数

    [(17, 4), (11, 4), (16, 3)]

    对某英文文章单词进行统计,找到出现次数最高的单词以及出现的次数

    通过上面的练习,我们知道可以用 Counter 来解决

    import re

    from collections import Counter

    # 统计某个文章中英文单词的词频

    with open('test.txt', 'r', encoding='utf-8')as f:

    d = f.read()

    total = re.split('\W+', d) # 所有的单词列表

    result = Counter(total)

    print(result.most_common(10))

    四.根据字典中值的大小,对字典中的项进行排序

    比如班级中学生的数学成绩以字典的形式存储:

    {"Lnad": 88, "Jim", 71...}

    请按数学成绩从高到底进行排序!

    方法1: 利用 zip 将字典转化为元组,再用 sorted 进行排序

    >>> data = {x: randint(60, 100) for x in "xyzfafs"}

    >>> data

    {'x': 73, 'y': 69, 'z': 76, 'f': 61, 'a': 64, 's': 100}

    >>> sorted(data)

    ['a', 'f', 's', 'x', 'y', 'z']

    >>> data = sorted(zip(data.values(), data.keys()))

    >>> data

    [(61, 'f'), (64, 'a'), (69, 'y'), (73, 'x'), (76, 'z'), (100, 's')]

    方法2: 利用 sorted 函数的 key 参数

    >>> data.items()

    >>> dict_items([('x', 64), ('y', 74), ('z', 66), ('f', 62), ('a', 80), ('s', 72)])

    >>> sorted(data.items(), key=lambda x: x[1])

    [('f', 62), ('x', 64), ('z', 66), ('s', 72), ('y', 74), ('a', 80)]

    五. 在多个字典中找到公共键

    实际场景:在足球联赛中,统计每轮比赛都有进球的球员

    第一轮: {“C罗”: 1, “苏亚雷斯”:2, “托雷斯”: 1…}

    第二轮: {“内马尔”: 1, “梅西”:2, “姆巴佩”:

    3…} 第三轮: {“姆巴佩”: 2, “C罗”:2, “内马尔”: 1…}

    模拟随机的进球球员和进球数

    >>> s1 = {x: randint(1, 4) for x in sample('abfcdrg', randint(1,5))}

    >>> s1

    {'d': 3, 'g': 2}

    >>> s2 = {x: randint(1, 4) for x in sample('abfcdrg', randint(1,5))}

    >>> s2

    {'b': 4, 'g': 1, 'f': 1, 'r': 4, 'd': 3}

    >>> s3 = {x: randint(1, 4) for x in sample('abfcdrg', randint(1,5))}

    >>> s3

    {'b': 4, 'r': 4, 'a': 2, 'g': 3, 'c': 4}

    首先获取字典的 keys,然后取每轮比赛 key 的交集。由于比赛轮次数是不定的,所以使用 map 来批量操作

    map(dict.keys, [s1, s2, s3])

    然后一直累积取其交集,使用 reduce 函数

    reduce(lambda x,y: x & y, map(dict.keys, [s1, s2, s3]))

    一行代码搞定!

    展开全文
  • ”“会Python的人,工作都不会太差。追上同龄人,就现在!”在“全民Python”热浪击打中,作为一名非工程师,我也加入了“Python大军”之中。第一次使用python时,我感觉它不过是是excel的升级版,是一个可以改善...

    全文共3262字,预计学习时长10分钟

    1972aef7eb1a9dc8d0ef66da3bccd240.png

    图源:Unsplash

    “每天半小时学习编程,0基础入门。”

    “会Python的人,工作都不会太差。追上同龄人,就现在!”

    在“全民Python”热浪击打中,作为一名非工程师,我也加入了“Python大军”之中。

    第一次使用python时,我感觉它不过是是excel的升级版,是一个可以改善数据分析工作的工具。

    但随着对python掌握得越好,我开始意识到它不仅仅是一个用来创造惊人的视觉效果或者执行高等数学函数的工具。

    我开始探索python更多的可能性,并意识到我只是用到了这门语言的皮毛而已,而实际上我可以开始用它来自动化一些流程。

    然而,我以前总是在担心——“我不是一名软件工程师,我办不到”,这种想法一直让我不敢把自动化流程付诸实践。现在我仍不是一名软件工程师,但我已经可以使一些流程自动化,使分析更有效,并成为了团队中更有价值的成员。

    94ebefd1cf1ff2401b67e4ae34e985c6.png

    从哪里开始,心中始终有一个坚定的最终目标

    为了有个正确的开端,心中需要有一个最终目标。

    以我为例:当认识到我没有充分挖掘这门编程语言的潜力时,我立即在想怎样才能有效地把这些概念融入到我的工作中,从而更有效率。我灵光一现——报告。

    作为分析员,公司经常要求我分析并制作报告。而作为其中优秀的一员,我把数据管道设置在一个计时器上,以便能够自主输入数据,然后写好脚本并进行设置,就某一主题去创建表格、图形和所需的统计信息。然而这个报告还未完成,我还需要去把这些视觉资料粘贴到演示文稿中,再把这封邮件发送到对方手中。

    完美,我已经发现了哪里可以自动化来提高工作效率。最终目标是:使用python,创建一个pdf格式的报告,将其作为附件添加到邮件并发送。

    a333301a8eb052976d9bc8d37d5f2f65.png

    图源:Unsplash

    94ebefd1cf1ff2401b67e4ae34e985c6.png

    需要什么

    依赖项

    下面是一些用于邮件自动发送的库和软件包。

    #to create pdf report

    from io import BytesIO

    from reportlab.pdfgen import canvas

    from django.http import HttpResponse#to automate email

    import email, smtplib, sslfrom email import encoders

    from email.mime.base import MIMEBase

    from email.mime.multipart import MIMEMultipart

    from email.mime.text import MIMEText

    以上是我想在个人项目中使用的,您可能不是全都需要。

    报告

    本文将列出一个简单的例子。使用“canvas”创建pdf,并自定义一些设置,如背景色、字体和字体大小、文本字符串和图像(或图表)。

    代码

    #name and create pdf

    c = canvas.Canvas('automate_report.pdf')

    #set background color (this color is yellow I do not recommend)

    c.setFillColorRGB(1,1,0)#Select font and font size

    c.setFont('Helvetica', 30)#create two text strings and set there position onthe pagec.drawString(5, 660,'Missing data chart for Titanic Data')

    c.drawString(5, 630, 'Report generated by Python')#add an image determine it'sposition and width and height

    c.drawImage('Survival.png', 5,90,480,400)#show page and save it

    c.showPage()

    c.save()

    这时pdf创建好了。

    需要注意以下事项:

    1、 图像与python脚本要位于同一目录下。

    2、 这只是一个基本大纲,如果想创建更复杂的pdf报告,建议访问canvas官方文档。

    电子邮件

    我们已经制作了一个pdf报告,现在看看怎么通过网络发送它!

    在深入研究代码之前,你可能需要创建一个接收该pdf的电子邮件账户,以便在自己的邮箱中检测邮件,而不会用到朋友的邮箱账户做该实验。

    提示:确保不要忘记密码。

    代码:

    # assign key emailaspects to variables for easier future editingsubject = "Weekly Report"

    body = "This is an email with the desired report attached"

    sender_email = "connerleavitt@gmail.com"

    receiver_email = "connerleavitt@icloud.com"

    file = "automate_report.pdf" # in the same directory as script

    password = "abc123"# Create the email head (sender, receiver, andsubject)email = MIMEMultipart()

    email["From"] = sender_email

    email["To"] = receiver_email

    email["Subject"] = subject# Add body and attachment toemailemail.attach(MIMEText(body, "plain"))attach_file = open(file,"rb") # open the file

    report = MIMEBase("application", "octate-stream")

    report.set_payload((attach_file).read())

    encoders.encode_base64(report)

    #add report header with the file name

    report.add_header("Content-Decomposition", "attachment",filename = file)

    email.attach(report)#Create SMTP session for sending the mailsession =smtplib.SMTP('smtp.gmail.com', 587) #use gmail with port

    session.starttls() #enable security

    session.login(sender_email, password) #login with mail_id and password

    text = email.as_string()

    session.sendmail(sender_email, receiver_email, text)

    session.quit()

    print('Mail Sent')

    代码中我尽可能地多做注释,这些注释应该能帮你理解所有代码是如何工作和相互作用的。作为个人偏好,我喜欢把很多硬代码作为变量放到脚本里,以便随时编辑。

    94ebefd1cf1ff2401b67e4ae34e985c6.png

    结论

    任何事都可能用python来完成,现存的资源可以帮助你完成从前做不到的事。

    Python真的是一个很棒的工具,帮助你更多产、更高效。

    就算你和我一样不是一名技术工程师,你也可以学习一下Python,利用Python,为你的工作带来便利。

    ed5394a89d05de66b59c7caec2478edd.png

    图源:item.btime

    670820aa60ef31213382a45b03b87d4b.png

    留言点赞关注

    我们一起分享AI学习与发展的干货

    如转载,请后台留言,遵守转载规范

    展开全文
  • 用Java实现可重复性的鼠标键盘事件--Robot类的使用Robot类的定义:构建Robot() // 在初始屏幕的坐标系上构建一个Robot类Constructs a Robot object in the coordinate system of the primary screen.Robot...

    用Java实现可重复性的鼠标键盘事件--Robot类的使用

    Robot类的定义:

    构建

    Robot() // 在初始屏幕的坐标系上构建一个Robot类

    Constructs a Robot object in the coordinate system of the primary screen.

    Robot(GraphicsDevice screen) // 在特定屏幕上创建

    Creates a Robot for the given screen device.

    方法总结

    返回值和返回类型

    方法

    描述

    BufferedImage

    createScreenCapture(Rectangle screenRect)

    创建包含从屏幕读取的像素的图像。

    void

    delay(int ms)

    特定时间段休眠时间

    int

    getAutoDelay()

    返回执行某一事件后Robot的休眠时间

    Color

    getPixelColor(int x, int y)

    返回当前坐标值的像素颜色

    boolean

    isAutoWaitForIdle()

    返回此机器人在生成事件后是否自动调用waitForIdle

    void

    keyPress(int keycode)

    模拟按下键盘按键

    void

    keyRelease(int keycode)

    模拟释放键盘按键

    void

    mousePress(int buttons)

    模拟按下鼠标按钮

    void

    mouseRelease(int buttons)

    模拟释放鼠标按钮

    void

    mouseWheel(int wheelAmt)

    模拟鼠标滚轮事件

    void

    setAutoDelay(int ms)

    设置此Robot在生成事件后休眠的毫秒数

    void

    setAutoWaitForIdle(boolean isOn)

    设置此机器人在生成事件后是否自动调用waitForIdle

    String

    toString()

    返回此Robot的字符串表示形式

    void

    waitForIdle()

    等待直到事件队列上当前的所有事件都已处理

    案例

    键盘事件,模拟打字

    public class Keyboard {

    public static void main(String[] a) throws AWTException{

    System.out.print("Hello World");

    Robot robot = new Robot();

    robot.delay(5000);

    robot.keyPress(KeyEvent.VK_H);

    robot.keyPress(KeyEvent.VK_E);

    robot.keyPress(KeyEvent.VK_L);

    robot.keyRelease(KeyEvent.VK_L);

    robot.keyPress(KeyEvent.VK_L);

    robot.keyPress(KeyEvent.VK_O);

    robot.keyPress(KeyEvent.VK_SPACE);

    robot.keyPress(KeyEvent.VK_W);

    robot.keyPress(KeyEvent.VK_O);

    robot.keyPress(KeyEvent.VK_R);

    robot.keyPress(KeyEvent.VK_L);

    robot.keyPress(KeyEvent.VK_D);

    robot.delay(100);

    robot.keyPress(KeyEvent.VK_ENTER);

    }

    }

    鼠标事件,模拟鼠标来回移动

    public class Mouse {

    public static void main(String[] args) throws AWTException{

    System.out.print("Mouse Move");

    Robot robot = new Robot();

    robot.delay(1000);

    int y = 500;

    int n = 0;

    do {

    for(int x=0; x<3840; x++) {

    robot.mouseMove(x, y);

    }

    for(int x=0; x<3840; x++) {

    robot.mouseMove(3840- x, y);

    }

    n++;

    }while(n<50);

    }

    }

    展开全文
  • 工作效率是指你在单位时间内的产出成果,要提高工作效率,要么在固定时间内有更多产出,要么就缩短产出的时长,而经常加班对工作效率没有任何帮助,反而让你的效率越来越低。那么究竟怎样提供工作效率,答案其实非常...

    程序员加班几乎是常态,你是不是每天都在加班?是不是觉得每天时间不够用?如果你的回答是 yes 的话,那么可能跟你的工作效率有关系。

    工作效率是指你在单位时间内的产出成果,要提高工作效率,要么在固定时间内有更多产出,要么就缩短产出的时长,而经常加班对工作效率没有任何帮助,反而让你的效率越来越低。

    那么究竟怎样提供工作效率,答案其实非常简单,就两个字:「专注」,这也是比尔盖茨一生最受用的技能。

    为什么程序员喜欢在半夜工作?

    有句话说是为了白天的碌碌无为的忏悔。实际上是因为半夜更容易专注,因为白天有各种内在因素和外在因素让你无法专注于工作。

    内因有各种时间 Killer 如 微信、微博、知乎、抖音、快手,还有各种各样的游戏如吃鸡、农药、消消乐等等。外因就是被动的打扰,有时开会,有时讨论需求,有时同事找你讨论问题,有时紧急bug需要处理,有时老大找你等等。

    那么如何提高我们专注力呢?番茄工作法就是最好的一种提身专注力的时间管理工具,这是由重度拖延症晚期患者Francesco Cirillo 创立的。

    该方法就是使用定时器来分割出一个25分钟的工作时间和5分钟的休息时间。

    640.jpeg

    番茄工作法看似简单,但是真正执行起来并且把它做好,并不是一件容易的事情。所以,在开始进入番茄工作法之前,你需要做些准备活动。

    首先将当日需要完成的事情按照重要紧急四象限法则,列出今日待完成任务列表。

    2018012308544948021.png

    进入番茄工作法之前,关闭所有提醒消息,包括但不限于QQ、微信、微博、邮箱等所有会分散你注意力的东西,如果已经开始进入番茄工作时间,当你被这些东西分心时,就提醒自己,在这25分钟内我不能看,等到休息时间了再去看。

    如果当前番茄工作时间还没有完成但被外在因素打断,在判断是否紧急的情况下再决定是否中断当前的番茄时间。如果不是立刻需要处理的事情,你可以将它放在紧急任务里面,待你完成了当前的番茄,如果必须现在处理,那么就将当前这个番茄时间作废掉,重新开始。

    每天进行数据统计分析,如果正常的一天8个小时能做完12个番茄时间,说明你的效率已经非常高了,如果少于10个,那就要反思,你究竟是被那些东西干扰了,及时进行调整对比。

    现在开始,就用番茄来管理你的时间吧。

    有问题可以扫描二维码和我交流

    关注公众号「Python之禅」,回复「1024」免费获取Python资源

    weixin.jpg

    展开全文
  • 在这篇文章里,我们将会介绍4个Python解释器自身提供的小工具。...下面就来看一下Python自带的几个小工具python学习交流群:516107834一、1秒钟启动一个下载服务器在实际工作中,时不时会有这样的一个需求:将文件传...
  • 很多人都会看到一些办公室内都会增加办公室隔断,它有很多的优势,不但可以改善环境,还能够让办公室变得更加的...因此很多公司为了重视个人的工作能力以及公司的整体的工作氛围,都会增加一些隔断,让工作效率和质...
  • 经常有人说我应该学一门语言,比如 Python 之类,但是却不知道如何入门。...本文将通过简单的例子来说下 Python 如何提高效率,减少重复劳动的。废话不多说,进入正题,首先安装 Python 和 pip, 教程网上很多,比如...
  • 面对社会经济的快速发展以及行业之间的竞争激烈,很多公司一直都在追求不断提高工作人员的工作效率。其实,通过科学的办公室设计也能起到提高人们工作效率的作用。今天小编便就这个话题跟大家聊一聊,看看什么样的...
  • 作为程序猿,每天一上班打开电脑要做的时候就是打开各种工作所需的工具,如QQ,SQL Server,浏览器,编辑器等,每天都要一个个点,重复性的工作做多了也觉得烦(关键是影响了我上班倒水的时间)。于是就寻思着用python...
  • 在这篇文章里,我们将会介绍4个Python解释器自身提供的小工具。...下面就来看一下Python自带的几个小工具python学习交流群:516107834一、1秒钟启动一个下载服务器在实际工作中,时不时会有这样的一个需求:将文件传...
  • python是一门简洁而优雅的语言,在编程时,掌握一些小技巧,不仅可以帮助我们提高工作效率,也能让代码变得简洁,不论是自己还是别人,看起来都比较舒服。这篇文章会持续收录一些编程小技巧,提升自己的同时希望也能...
  • 如果你对数据分析有所了解...——PythonPython有很多优点,如果你能很好的运用到工作中,会发现工作效率大大提升,涨薪也是再正常不过的事情。Python优点一:“流程可控,工作高效”举个例子,Excel做分析的过程:定...
  • 那么,爬虫应当怎么样优化python提高工作效率呢? python爬虫效率低,自有其原因,弄清楚了问题出在哪儿,才可以更好的处理问题 。 一、本地自身原因。cpu不够用,爬虫一跑起来就爆满,这一点能够借助分布式的方式...
  • 温馨的工作环境必须满足企业的日常办公需求。 今天,我们使用不同的领域,即领导办公室、员工办公区、公共休闲区,以满足员工的需求,以了解适合日常办公的办公家具。 1、现代领导办公室 ...
  • 01 一个因办公桌引起的惨痛的教训小娜刚大学毕业,找到了一份世界500强的工作,让同学们羡慕极了。小娜被安排到了行政部,做一名小行政助理,向行政部主管汇报工作。初见时看着挺乖巧的一位小姑娘,相处时间长了,你...
  • 原本SOHO是很多父母心目中的理想“职业”,本以为节省了通勤时间,能有更多时间陪孩子,但事实却是……对SOHO没什么经验的我们,瞬间被迫将工作和生活混作一团,8小时的工作时间里有4个小时要用来应付精力充沛的娃,...
  • 作为曾经的“表哥”,最近在学习python, 想尽量用浅显易懂的语言,结合日常office工作中的一些常用操作,来讲一讲如何使用python提升工作效率,以帮助有需求的officer们。文章将持续更新。一、如何用python读、写...
  • 如果你对数据分析有所了解...——PythonPython有很多优点,如果你能很好的运用到工作中,会发现工作效率大大提升,涨薪也是再正常不过的事情。Python优点一:“流程可控,工作高效”举个例子,Excel做分析的过程:定...
  • 光线除了能够照明,还能影响人的心情,所以好的照明环境不仅能够保护眼睛,还能够让心情愉悦,抗疲劳和提高工作效率。毕竟昏暗的工作环境会让人容易疲倦,从而导致正在工作的你出现昏昏欲睡的状态。很多人对照明的...
  • 但是,我们可以使用一些技术来提高Python代码的效率。 在本文中,我将向您展示我通常在工作中使用的加速技术。测试环境是Python 3.7,macOS 10.14.6和2.3 GHz Intel Core i5。0.优化原理在深入探讨代码优化的细节...
  • 今天小编就为大家分享一篇用Python调用win命令行提高工作效率的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 最近的工作遇到一个需求,整理多个相同格式但是不标准的Excel表格,最终汇总成一个Excel表格,并进行数据透视分析。表格内涉及到合并的单元格...所以决定使用Python对Excel进行自动处理,实现一键导出目标Excel的目...
  • 熟练使用python和sql提高工作效率 1、理解python和sql的本质 2、理解工作中对工具能力要求的本质 3、熟练组合,提高效率
  • 企业定制办公家具享有由专业测绘师、设计师上门测量设计,量身定制符合空间需要的服务,再由专业工人上门安装,更能满足人们的个性化需求,而且能充分利用办公室空间,提高效率。因此,办公家具定制在国内也渐渐成为...
  • 快速提升工作效率:7款Python必备工具推荐。看看都有哪些Python工具吧,如果你想要学习Python编程,这些知识点要记得!俗话说“工欲善其事,必先利其器”,做程序开发也是如此,想要成为一个程序员,除了学习各种教程...
  • 作者 | Enoch CK译者 | 刘畅整理 | Jane出品 | Python大本营【导语】无论你是一位高级的AI工程师还是学生,你都会在工作或学习过程中需要用到 Python。自 1991 年首次发布后,Python 很快就成为了程序员和技术人员最...
  • 一、IPython 简介IPython 是一个交互... 探索 ,而大部分和数据分析相关的代码都含有探索式操作(比如试误法和迭代法),所以 IPython 能大大提高编码效率。IPython 发展到现在,它不仅仅只是一个加强版的 Python she...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,216
精华内容 886
关键字:

python提高工作效率

python 订阅