首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

我有两个列表,现在需要找出两个列表不同元素,怎么做?

一、前言 前几天在帮助粉丝解决问题时候,遇到一个简单小需求,这里拿出来跟大家一起分享,后面再次遇到时候,可以从这里得到灵感。...二、需求澄清 问题如下所示: 三、实现过程 这里【听风】一开始给了一个集合求差集方法,差强人意。 不过并没有太满足要求,毕竟客户需求是分别需要两个列表不重复元素。...后来【听风】又给了一个方法,如下所示: 这次是完全贴合要求了,代码运行之后,可以得到预期效果: 这里再补充一个小知识点,提问如下图所示: 后来【听风】给了一个方法,如下图所示: 原来列表转df...是这样玩,接下来你就可以把数据导出为Excel等其他格式了,不再赘述。...这篇文章主要盘点一个Python实用案例,这个案例可以适用于实际工作中文件名去重等工作,感谢【听风】大佬给予耐心指导。

3.2K10

几分钟内学习 Clojure

Clojure 是JVM上一个LISP语言变种,它比Common Lisp更强调纯函数式编程,但提供了一些STM工具以处理它所引入状态问题。...Clojure源码托管在:github 在线练习编译环境: himera learnclojure.clj 示例: ; 分号作为注释开始 ; Clojure 用一种把元素用括号括起来列表一样方式来书写...,元素之间用空格隔开 ; clojure 解释器会把第一个元素当做是函数或者宏调用,其他都作为参数 ; 下面这个函数用于设置当前命名空间 (ns test) ; 更多基本例子: ; str 函数会用它所有的参数创造一个字符串...(一个无穷序列) (take 4 (range)) ; (0 1 2 3) ; 使用cons 来追加一个元素列表或者向量头部 (cons 4 [1 2 3]) ; => (4 1 2 3) (cons...4 '(1 2 3)) ; => (4 1 2 3) ; 使用conj追加一个元素列表头部,或者向量尾部, (conj [1 2 3] 4) ; => [1 2 3 4] (conj '(1

1.7K40
您找到你想要的搜索结果了吗?
是的
没有找到

上手Python之列表

数据容器 为什么学习数据容器 思考一个问题:如果我想要在程序,记录5名学生信息,姓名。 如何做呢?...学习数据容器,就是为了批量存储或批量使用多份数据  Python数据容器: 一种可以容纳多份数据数据类型,容纳每一份数据称之为1个元素 每一个元素,可以是任意类型数据,字符串、数字、布尔等。....pop(下标) 删除某元素列表第一个匹配项 语法:列表.remove(元素)  清空列表内容 语法:列表.clear() 统计某元素列表数量 语法:列表.count...(元素) 统计列表内,有多少元素 语法:len(列表)       可以得到一个int数字,表示列表元素数量  编号 使用方式 作用 1 列表.append(元素) 向列表追加一个元素...将容器内元素依次取出进行处理行为,称之为:遍历、迭代。 如何遍历列表元素呢? 可以使用前面学过while循环 如何在循环中取出列表元素呢?

4.2K10

Lisp语言简介_c++是什么语言

这个比较小众编程到底是什么~ ————————————————————————— LISP(全名LISt Processor,即列表处理语言),由约翰·麦卡锡在1960年左右创造一种基于λ演算函数式编程语言...在Unix/Linux系统,还有一种和Emacs一起Emacs Lisp(而Emacs正是用Lisp作为扩展语言进行功能扩展)非常流行,并建立了自己标准。...Lisp表达式是一个原子(atom)或表(list),原子(atom)又包含符號(symbol)與數值(number);表是由零个或多个表达式组成序列,表达式之间用空格分隔开,放入一对括号:...如果一个表达式是一个表,那么我们把表第一个元素叫做操作符,其余元素叫做自变量。...car (car x) 要求 x 是一个表,它返回 x 第一个元素,例如: > (car ‘(a b))a 基本操作符5 cdr (cdr x) 同样要求 x 是一个表,它返回x第一个元素之外所有元素组成

2.3K20

Python随记(一)列表和元组

可以通过索引来访问列表某个元素List3[0]值就是‘A’, 索引可以为负数,但是最后一个元素索引对应是-1,只有正序第一个元素索引为0。...2、 分片(sliding) 分片操作用来访问一定范围内元素,分片通过冒号隔开两个索引实现。这两个索引作为边界,第1个索引包含在分片内,第2个索引是剩下元素第一个元素索引。...4, 5 ]; List1.append(9) List1= [1, 2, 3, 4, 5, 9 ] ②count方法统计某个元素列表中出现次数,返回值就是次数 ③extend,在列表末尾一次性追加另一个序列多个值...List1.pop( )   默认移除最后一个元素 List1.pop(2)  移除索引为2元素,是以索引为参考 ⑦remove 移除列表某个值第一个匹配项   个人感觉这个操作相当于,先用index...访问通过索引方式访问,分片也一样操作。 4、  意义何在? ①元组可以在映射(和集合成员)当作键使用,而列表不行 ②元组作为很多内建函数和方法返回值存在。

1.1K00

逻辑式编程语言极简实现(使用C#) - 4. 代码实现(完结)

否则,按照Stream定义,分两个部分进行构造: 第一个元素,显然就是s1第一个元素; 剩余Stream,就是s1剩余Stream,拼上s2,这里是个递归定义。...我们需要尽量推迟s2第一个元素计算,因为推迟着推迟着可能就没了不用算了。在很多场景,这个可以节省不必要计算,甚至避免死循环(“这都是血泪教训。”老明捂脸)。...所以相应,我们需要一个方法,这个方法把两个Stream s1和s2元素交替地拼接组成一个“长”Stream。 首先,如果s1是空Stream,那么“长”Stream显然就是s2。...否则,分两部分构造: 第一个元素是s1第一个元素; 这里和Append方法区别是把s1和s2位置调换了,剩余Stream是s2交替拼上s1剩余Stream,同样是个递归定义。...否则,结果是s1第一个元素追加g2,再拼上s1剩余Stream Bind g2结果。这仍是递归定义,不过是借助Append方法进行Stream构造。

21920

“数”起源 2.1 数据漫话史—抽象、表示与存储

原始人类创造了数概念后遇到第一个挑战就是如何表示这两个数,但此时远没有到 用“阴阳”这两个文字来表示两种状态程度,那个时候文字还没有产生。...Lisp 只使用了很少语法 元素就定义了一套强大语言,它主要数据结构就是列表,只使用很少操作符来处理列 表,而这些操作符本身就是一个函数。...Lisp 函数 rest 功能就是去除列表第一个元素返回剩余元素构成表,这样,这个新列表所表示数 就是“之前一个数”了: (my-number (rest lst)) 下面运行 my-number...图 2-2 Lisp程序--数序列定义示例 注:以上程序使用 Common Lisp 编写,在 LispBox 调试通过。 读到这里,聪明您可能发现,这不就是求一个列表长度么?...假设这个列表每一个元素所在位置表示它所对应数,那么这个列表就是存储这 些“数”容器,假设它所在位置可以通过一个指针迅速定位,通过移动指针位置来标 记写入或者读取一个数。

78420

Emacs Lisp

;; 如果想要得到列表第一个元素,可以使用car函数 (car list-of-names) ;; 如果想要得到列表第一个元素以外其它元素,可以使用cdr函数 (cdr list-of-names...) ;; 以后push函数可以在列表头部插入新元素,所以下面的命令将改变list-of-name中元素个数 (push "Stephanie" list-of-names) ;; mapcar...函数对列表列表每一个元素分别取出来,赋给hello函数 (mapcar 'hello list-of-names) ;; 重新定义greeting函数,在一个新,清空buffer,对list-of-names...列表每一个元素,调用hello函数 ;; 调用完毕之后,再让光标回到原buffer (defun greeting () (switch-to-buffer-other-window "*test...(defun hello-to-bonjour () (switch-to-buffer-other-window "*test*") (erase-buffer) ;; 对list-of-names列表每个元素

2.3K40

2021年大数据常用语言Scala(十六):基础语法学习 列表 List 重点掌握

++= 不同是, ++= 是 追加, 也就是 将一个追加到另一个 ++ 是两个串联在一起 形成一个新, 这个概念不要混淆 a ++= b, 最终是a 变化了 加长了 a ++ b 执行完后,...相信大家可以做到 拉链与拉开 拉链:使用zip将两个列表,组合成一个元素为元组列表 拉开:将一个包含元组列表,解开成包含两个列表元组 示例 有两个列表 第一个列表保存三个学生姓名,分别为...,不去重 示例 定义第一个列表,包含以下元素:1,2,3,4 定义第二个列表,包含以下元素:3,4,5,6 使用union操作,获取这两个列表并集(类似拼接) 使用distinct操作,去除重复元素...取出两个列表中一样元素 示例 定义第一个列表,包含以下元素:1,2,3,4 定义第二个列表,包含以下元素:3,4,5,6 使用intersect操作,获取这两个列表交集 scala> val a1...示例 定义第一个列表,包含以下元素:1,2,3,4 定义第二个列表,包含以下元素:3,4,5,6 使用diff获取这两个列表差集 scala> val a1 = List(1,2,3,4) a1: List

72210

Emacs Lisp2

;; 在Elisp做运算,调用函数最简单方式是;; (function arg1 arg2) ;; 这相当于通常function(arg1,arg2),下面的表达式,对两个数字进行加法运算(+...;; 如果想要得到列表第一个元素,可以使用car函数(car list-of-names);; 如果想要得到列表第一个元素以外其它元素,可以使用cdr函数(cdr list-of-names...);; 以后push函数可以在列表头部插入新元素,所以下面的命令将改变list-of-name中元素个数(push "Stephanie" list-of-names);; mapcar函数对列表列表每一个元素分别取出来...,赋给hello函数(mapcar 'hello list-of-names);; 重新定义greeting函数,在一个新,清空buffer,对list-of-names列表每一个元素,调用hello...如下:(defun hello-to-bonjour ()(switch-to-buffer-other-window "*test*")(erase-buffer);; 对list-of-names列表每个元素

96740

Emacs Lisp

;; 如果想要得到列表第一个元素,可以使用car函数 (car list-of-names) ;; 如果想要得到列表第一个元素以外其它元素,可以使用cdr函数 (cdr list-of-names...) ;; 以后push函数可以在列表头部插入新元素,所以下面的命令将改变list-of-name中元素个数 (push "Stephanie" list-of-names) ;; mapcar...函数对列表列表每一个元素分别取出来,赋给hello函数 (mapcar 'hello list-of-names) ;; 重新定义greeting函数,在一个新,清空buffer,对list-of-names...列表每一个元素,调用hello函数 ;; 调用完毕之后,再让光标回到原buffer (defun greeting () (switch-to-buffer-other-window "*test...(defun hello-to-bonjour () (switch-to-buffer-other-window "*test*") (erase-buffer) ;; 对list-of-names列表每个元素

2.2K30

如何用Python编写一个Lisp解释器

这和 Java counterpart 类似,但 Schema 不同,一些运算符号, + 和 > 也是标识符,和 A 及 fn 地位是平等。...还有列表表达式:一个 "(" ,后面接零或多个表达式,后面再接一个 ")"。列表第一个元素决定了其含义是什么: 以关键词作为开头列表 (if ...)...以非关键词开头列表 (fn ...),是函数调用。 Schema 妙处在于整个语言体系仅需 5 个关键词和 8 种语法形式。...read_from_tokens 会关注第一个 token,如果第一个是 ')',那么是一个语法错误。如果第一个是 '(',那么我们就开始建立子表达式列表,直到我们遇到匹配 ')'。...调用 procedure 过程引入了新局部变量,将其与函数参数列表标识符一一绑定,对应所调用函数参数列表值。

1.3K40

第3章 | 基本数据类型 | 数组、向量和切片

数组大小是在编译期就已确定常量,并且是类型一部分,不能追加元素或缩小数组。 类型 Vec 可称为 T 向量,它是一个动态分配且可增长 T 类型值序列。...向量元素存在于堆,因此可以随意调整向量大小:压入新元素追加其他向量、删除元素等。...可以将切片视为指向其第一个元素指针,以及从该点开始允许访问元素数量计数。...v 第一个元素是 v[0],最后一个元素是 v[v.len() - 1]。Rust 总是会检查 i 是否在这个范围内,如果没在,则此表达式会出现 panic。...由于切片可以是任意长度,因此它不能直接存储在变量或作为函数参数进行传递。切片总是通过引用传递。 对切片引用是一个胖指针:一个双字值,包括指向切片第一个元素指针和切片中元素数量。

8310

日拱一卒,伯克利CS61A,居然有Lisp这样语言……

除了cons之外还有三个常用符号,分别是car,cdr和nil。car用来返回pair第一个元素,cdr用来返回pair第二个元素,nil表示一个空list。...作业 Q1: Cadr and Caddr 实现两个过程cadr和caddr分别返回list第二和第三个元素。...老师给了一个例子cddr,类似于Python切片s[2:] (define (cddr s) (cdr (cdr s))) 要获取第二个元素很简单,我们先使用cdr获取除开第一个元素之外子串...,再取一次car获取子串第一个元素: (define (cadr s) 'YOUR-CODE-HERE (car (cdr s)) ) 获取第三个元素也是类似,由于老师已经写好了cddr我们可以直接使用...使得在v不在s时,往s插入v。 这也是一道递归问题,递归逻辑也不复杂,我们先根据链表第一个元素判断,如果v小于头元素,那么将链表向右移动一位。如果v和头部元素相等,说明v已经在链表当中。

94040

Emacs 之光成长历程

更令人好奇是,嘉宾如何在短期内熟悉 Emacs 源码并为之贡献多个 patch,相信通过嘉宾学习、贡献经历,可以给听众打开 Emacs 源码神秘面纱,让更多用户参与到 Emacs 贡献,一个多小时分享...[2] • 00:23:58 源码贡献经历 • 00:27:32 源码贡献流程介绍 • 00:38:15 如何读懂 Emacs 源码 • 00:57:59 嘉宾第一个 Emacs patch • 01...[10] • Add filter to GDB's register buffer[11] •Emacs 代码规范 • 注释都是完整句子,最后有个句号,句号后两个空格 • 注释用是 C 风格 /*...*/ ,而不是 C++ // • 函数名后面跟一个空格,再是括号 •读 Emacs 源码技巧 • lisp.h[12] 里面有 C 如何调用 ELisp 示例 • 去 devel[13] 邮件列表咨询...: https://github.com/emacs-mirror/emacs/blob/master/src/lisp.h [13] devel: https://lists.gnu.org/archive

38010
领券