def

python-函数-匿名函数lambda

血红的双手。 提交于 2021-02-13 07:09:10
匿名函数:lambda Python语言使用lambda关键字来创建匿名函数。所谓匿名,即不再使用def语句这样标准的形式定义一个函数。 匿名函数写法: lambda x: x * x 普通函数写法: def funx(x): return x * x 关键字lambda表示匿名函数,冒号前面的x表示函数参数,x*x是执行代码 注: 匿名函数可以赋值给一个变量 匿名可以作为其他函数的返回值 匿名函数也可以作为参数传递给其他函数。 匿名函数与普通函数区别 匿名函数:无函数名,函数体只是一个简单的表达式,实现很简单的功能其他和普通函数一样。 lambda a,b,c=1,d=2,*.args,**kwargs:a+b+c+d 普通函数:有函数名,可根据需要,函数体代码自由书写,可以实现任何复杂的功能。 def func(a,b,c=2,*.args,**kwargs): return a+b+c+d 来源: oschina 链接: https://my.oschina.net/u/2919730/blog/3015543

python lambda匿名函数

六眼飞鱼酱① 提交于 2021-02-13 06:50:07
  在学习python的过程中,lambda的语法时常会使人感到困惑,lambda是什么,为什么要使用lambda,是不是必须使用lambda?   下面就上面的问题进行一下解答。   1、lambda是什么?     看个例子:      1 g = lambda x:x+1   看一下执行的结果:    g(1)   >>>2   g(2)   >>>3   当然,你也可以这样使用:   lambda x:x+1(1)   >>>2      可以这样认为, lambda作为一个表达式,定义了一个匿名函数,上例的代码x为入口参数,x+1为函数体 ,用函数来表示为: 1 def g(x): 2 return x+1   非常容易理解,在这里 lambda简化了函数定义的书写形式。是代码更为简洁,但是使用函数的定义方式更为直观,易理解 。   Python中,也有几个定义好的全局函数方便使用的,filter, map, reduce   >>> foo = [2, 18, 9, 22, 17, 24, 8, 12, 27] >>> >>> print filter(lambda x: x % 3 == 0, foo) [18, 9, 24, 12, 27] >>> >>> print map(lambda x: x * 2 + 10, foo) [14, 46, 28, 54,

九、Pyqt5进度条——QProgressBar

左心房为你撑大大i 提交于 2021-02-13 03:53:04
QProgressBar部件为进度条,进度条方向为水平或者竖直。在处理一个耗时较长的任务时,可能就会用到进度条部件。因为使用进度条可以形象告诉用户当前的任务正在进行中。 进度条常用函数如下: 函数 值 内容 setInvertedAppearance True/False 设置进度条的走向。 Ture:从左至右或从上到下 False:从右至左或从下到上 默认为True setOrientation Qt.Horizontal/ Qt.Vertical 设置进度条为水平、竖直。 默认为水平 setMinimum 0~99 设置最小值 ,默认0 setMinimum 0~99 设置最大值 ,默认99 setFormat %p %v %m 设置进度条旁的文本显示: 以百分比表示; 以当前值表示; 以总步长表示。 默认为百分比(%p)。 示例如下: 1 import sys,time 2 from PyQt5.QtWidgets import QApplication, QWidget, QProgressBar, QPushButton,QVBoxLayout 3 from PyQt5.QtCore import Qt 4 5 6 class Mywin(QWidget): 7 def __init__ (self): 8 super(). __init__ () 9 self

72. Edit Distance(编辑距离 动态规划)

元气小坏坏 提交于 2021-02-13 03:43:33
Given two words word1 and word2 , find the minimum number of operations required to convert word1 to word2 . You have the following 3 operations permitted on a word: Insert a character Delete a character Replace a character Example 1: Input: word1 = "horse", word2 = "ros" Output: 3 Explanation: horse -> rorse (replace 'h' with 'r') rorse -> rose (remove 'r') rose -> ros (remove 'e') Example 2: Input: word1 = "intention", word2 = "execution" Output: 5 Explanation: intention -> inention (remove 't') inention -> enention (replace 'i' with 'e') enention -> exention (replace 'n' with 'x') exention

DuReader数据集之数据预处理代码解析

荒凉一梦 提交于 2021-02-13 02:36:49
https://zhuanlan.zhihu.com/p/75509030 上一篇我们介绍DuReader数据集的基本情况,见 刘聪NLP:机器阅读理解之DuReader数据集描述 。 这一篇我们介绍一下DuReader数据集是如何进行数据预处理的,我们要比较一下原始数据和预处理后数据的区别: 原始数据结构: { 'documents': [{ 'is_selected': True or Flase, 'title': ' String', 'paragraphs':[ ' String', ' String', ' String' ] }, { 'is_selected': True or Flase, 'title': ' String', 'paragraphs':[ ' String', ' String', ' String' ] } ], 'answers': [' String', ' String', ' String' ], 'question’: ‘String', 'question_type': DESCRIPTION or ENTITY or YESNO, 'fact_or_opinion': FACT or OPINION, 'question_id': 191572 } 预处理后的数据结构: { 'documents': [{ 'is

leetcode第72题:编辑距离

£可爱£侵袭症+ 提交于 2021-02-13 01:47:35
给定两个单词 word1 和 word2 ,计算出将 word1 转换成 word2 所使用的最少操作数 。 你可以对一个单词进行如下三种操作: 插入一个字符 删除一个字符 替换一个字符 示例 1: 输入: word1 = "horse", word2 = "ros" 输出: 3 解释: horse -> rorse (将 'h' 替换为 'r') rorse -> rose (删除 'r') rose -> ros (删除 'e') 示例 2: 输入: word1 = "intention", word2 = "execution" 输出: 5 解释: intention -> inention (删除 't') inention -> enention (将 'i' 替换为 'e') enention -> exention (将 'n' 替换为 'x') exention -> exection (将 'n' 替换为 'c') exection -> execution (插入 'u' 网易面试时遇到了这题,当时没做出来,想不出来状态转移方程。 解题思路如下: 首先定义状态矩阵,dp[m][n],其中m为word1的长度+1,n为word2的长度+1,为什么+1?因为要考虑如果word1或word2为空的情况,后面可以看到。 定义dp[i][j

python 调用麦克风;摄像头;截屏;

点点圈 提交于 2021-02-12 22:37:16
# -*- coding: utf-8 -*- """ Created on Mon Jun 24 14:47:35 2019 @author: erio """ from PIL import Image,ImageGrab import cv2 import pyaudio import wave ''' #录音 input_filename = "record.wav" # 麦克风采集的语音输入 input_filepath = "E:" # 输入文件的path in_pathrec = input_filepath + input_filename #通俗解释就是wav文件路径 def get_audio(filepath): CHUNK = 256 #定义数据流块 FORMAT = pyaudio.paInt16 #量化位数(音量级划分) CHANNELS = 1 # 声道数;声道数:可以是单声道或者是双声道 RATE = 8000 # 采样率;采样率:一秒内对声音信号的采集次数,常用的有8kHz, 16kHz, 32kHz, 48kHz, 11.025kHz, 22.05kHz, 44.1kHz RECORD_SECONDS = 10 #录音秒数 WAVE_OUTPUT_FILENAME = filepath #wav文件路径 p = pyaudio.PyAudio()

大数据开发-从cogroup的实现来看join是宽依赖还是窄依赖

倾然丶 夕夏残阳落幕 提交于 2021-02-12 22:27:19
前面一篇文章提到大数据开发-Spark Join原理详解,本文从源码角度来看cogroup 的join实现 1.分析下面的代码 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} object JoinDemo { def main(args: Array[String]): Unit = { val conf = new SparkConf().setAppName(this.getClass.getCanonicalName.init).setMaster("local[*]") val sc = new SparkContext(conf) sc.setLogLevel("WARN") val random = scala.util.Random val col1 = Range(1, 50).map(idx => (random.nextInt(10), s"user$idx")) val col2 = Array((0, "BJ"), (1, "SH"), (2, "GZ"), (3, "SZ"), (4, "TJ"), (5, "CQ"), (6, "HZ"), (7, "NJ"), (8, "WH"), (0, "CD")) val rdd1: RDD[

NLP任务中的文本预处理步骤、工具和示例

佐手、 提交于 2021-02-12 19:34:34
数据是新的石油,文本是我们需要更深入钻探的油井。 文本数据无处不在, 在实际使用之前,我们必须对其进行预处理,以使其适合我们的需求。对于数据也是如此,我们必须清理和预处理数据以符合我们的目的。这篇文章将包括一些简单的方法来清洗和预处理文本数据以进行文本分析任务。 我们将在Covid-19 Twitter数据集上对该方法进行建模。这种方法有3个主要组成部分: 首先,我们要清理和过滤所有非英语的推文/文本,因为我们希望数据保持一致。 其次,我们为复杂的文本数据创建一个简化的版本。 最后,我们将文本向量化并保存其嵌入以供将来分析。 第1部分:清理和过滤文本 首先,为了简化文本,我们要将文本标准化为仅为英文字符。此函数将删除所有非英语字符。 def clean_non_english(txt): txt = re.sub(r'\W+', ' ', txt) txt = txt.lower() txt = txt.replace("[^a-zA-Z]", " ") word_tokens = word_tokenize(txt) filtered_word = [w for w in word_tokens if all(ord(c) < 128 for c in w)] filtered_word = [w + " " for w in filtered_word] return ""

python threading之条件变量同步(condition)

别等时光非礼了梦想. 提交于 2021-02-12 15:25:56
有一类线程需要满足条件之后才能够继续执行, Python提供了threading.Condition 对象用于条件变量线程的支持, 它除了能提供RLock()或Lock()的方法外, 还提供了 wait()、notify()、notifyAll()方法。 wait([timeout]):线程挂起,直到收到一个notify通知或者超时(可选的,浮点数,单位是秒s) 才会被唤醒继续运行。wait()必须在已获得Lock前提下才能调用,否则会触发RuntimeError。 调用wait()会释放Lock,直至该线程被Notify()、NotifyAll()或者超时线程又重新获得Lock. notify(n=1):通知其他线程,那些挂起的线程接到这个通知之后会开始运行, 默认是通知一个正等待该condition的线程,最多则唤醒n个等待的线程。notify()必须在已获得Lock前提下才能调用, 否则会触发RuntimeError。notify()不会主动释放Lock。 notifyAll(): 如果wait状态线程比较多,notifyAll的作用就是通知所有线程(这个一般用得少) lock_con=threading.Condition([Lock/Rlock]): 锁是可选选项, 默认创建一个RLock(),一般都用默认。 import threading,time from