1.linux通配符

*:代表所有字符(0到多个);

?:代表一个字符;

;:连续不同命令之间的分隔符;

#:配置文件注释;

|:管道;

~:当前用户的家目录;

-:上一次所在的路径;

$:变量前面需要加的符号;

/:路径分隔符;

>或1>:重定向,会覆盖原有数据;

>>:追加重定向;

<:输入重定向(xargs、tr);

<<:追加输入重定向(cat);

':单引号,不具有命令置换功能,输出时所见即所得;

":双引号,具有变量置换功能,解析变量后才输出.不加引号相当于双引号;

`:反引号,两个``中间为命令,会先执行,等价于$();

{}:命令区块组合或内容序列,echo stu{1..5};cp a.txt {,.bak};

!:逻辑运算中的非(not);

&&:and并且,前一个命令执行成功时,才执行后一个命令;

||:or或,前一个命令执行失败时,执行后一个命令;

.:当前目录;

..:上一级目录;

2.正则表达式:为处理大量字符串而定义的一套规则和方法

a.基础正则第一波:

# 匹配以m开头的字符,因为是贪婪模式,所以匹配到整行
grep "^m" oldboy.txt
# 匹配以m结尾的字符
grep "m$" oldboy.txt
# 匹配空行并显示行号
grep -n "^$" oldboy.txt
# 排除空行
grep -vn "^$" oldboy.txt
# 只输出匹配到的m字符
grep -no "m" oldboy.txt

.:代表且只能代表任意一个字符;

*:重复0个或多个前面的一个字符,例如:my*,0个y,会匹配有m字符的字符串;1个y,my;多个y,myyy;

\:转义,让有特殊意义的字符,只代表字符本身;

.*:匹配任意长度的任意字符.

b.基础正则第二波:

grep -no [abc] oldboy.txt  匹配集合内的任意一个字符
grep -no [^abc] oldboy.txt 不匹配集合内的字符
a\{n,m\} 前一个字符,重复n到m次
a\{n,\} 重复至少n次
a\{n\} 重复n次
a\{,m\} 最多重复m次 # -w参数是按单词搜索,只匹配有这个单词的行
grep -w "oldboy" oldboy.txt
# grep -E 不用再加转义符\,egrep、sed -r是同样的道理--支持扩展正则
# -i、-v为常用参数、-o(用于统计出现在文中的次数)

c.通配符和正则表达式比较:

通配符多用在文件上,比如find、ls、cp等;正则表达式多用于文本过滤,比如grep、awk、sed等;

*在通配符中表示匹配任意的0个或多个字符;在正则表达式中是重复之前的一个或者多个字符,不能独立使用.

3.python去重的几种方法:

>>> lst1 = [2, 1, 3, 4, 1]
>>> lst2 = list(set(lst1))
>>> print(lst2)
[1, 2, 3, 4]
二、常规方法
>>> lst1 = [2, 1, 3, 4, 1]
>>> temp = []
>>> for item in lst1:
if not item in temp:
temp.append(item)
>>> print(temp)
[2, 1, 3, 4]
三、列表推导
>>> lst1 = [2, 1, 3, 4, 1]
>>> temp = []
>>> [temp.append(i) for i in lst1 if not i in temp]
[None, None, None, None]
>>> print(temp)
[2, 1, 3, 4]
>>> data = [2, 1, 3, 4, 1]
>>> [item for item in data if data.count(item) == 1]
[2, 3, 4]
四、sort、sorted
>>> lst1 = [2, 1, 3, 4, 1]
>>> lst2.sort(key=lst1.index)
>>> lst2 = sorted(set(lst1), key=lst1.index)
个人觉得第一种和第三种方法比较好理解

sort与sorted区别:

sort 是应用在list上的方法,sorted 可以对所有可迭代的对象进行排序操作.list 的 sort 方法返回的是对已经存在的列表进行操作,无返回值,而内建函数 sorted 方法返回的是一个新的 list,而不是在原来的基础上进行的操作.

通过指定列表中的元素进行排序:
>>> random = [(2, 2), (3, 4), (4, 1), (1, 3)]
>>> random.sort(key=lambda s:s[1])
>>> print(random)
[(4, 1), (2, 2), (1, 3), (3, 4)] sorted的使用方法:
>>> students = [('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10)]
# 按年龄降序排序
>>> sorted(students, key=lambda s: s[2], reverse=True)
[('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10)]

通配符、正则表达式、python去重的更多相关文章

  1. 正则表达式python和C++对比

    pattern格式(基本通用): pattern格式 符号 说明 ^ 匹配开头 $ 匹配结尾 . 匹配任意一个字符 [...] 匹配任意一个指定的字符 [^...] 匹配任意一个非指定的字符 * 匹配 ...

  2. Python 正则表达式 (python网络爬虫)

    昨天 2018 年 01 月 31 日,农历腊月十五日.20:00 左右,152 年一遇的月全食.血月.蓝月将今晚呈现空中,虽然没有看到蓝月亮,血月.月全食也是勉强可以了,还是可以想像一下一瓶蓝月亮洗 ...

  3. python 去重方法

    待补充:https://www.cnblogs.com/zknublx/p/6042295.html 一.使用集合直接去重 ids = [1,4,3,3,4,2,3,4,5,6,1]ids = lis ...

  4. 正则表达式python

    import re # re.match() 能够匹配出以xxx开头的字符串 ret = re.match(r"H", "Hello Python") # pr ...

  5. python正则表达式 Python Re模块

    最近在学python 练习的时候随手写的,方便以后自己参考~如果能对其他同学有所帮助就再好不过了 希望大家指正哦~  我会随时整理的,先这样~ 正则表达式 1.元字符([ ]),它用来指定一个char ...

  6. phython正则表达式 Python Re模块

    反斜杠问题 与大多数编程语言相同,正则表达式里使用”\”作为转义字符,这就可能造成反斜杠困扰.假如你需要匹配文本中的字符”\”, Python里的原生字符串很好地解决了这个问题,这个例子中的正则表达式 ...

  7. 正则表达式-Python实现

    1.概述: Regular Expression.缩写regex,regexp,R等: 正则表达式是文本处理极为重要的工具.用它可以对字符串按照某种规则进行检索,替换. Shell编程和高级编程语言中 ...

  8. 正则表达式 ——python 基础

    一.引言 正则表达式是含有文本和特别字符的字符串,这些文本和特别字符描述的模式可以识别各种字符串. 正则表达式的强大之处在于特殊符号的应用,特殊符号定义了字符集合.子组匹配,模式重复次数...正是这些 ...

  9. python 去重

    List: listA = ['python','python','言','是','一','门','动','态','语','言'] print sorted(set(listA), key = lis ...

随机推荐

  1. 20.Yii2.0框架多表关联一对多查询之hasMany

    目录 新手模式 hasMany关联模式查询 新建mode层Article.php 新建mode层Category.php 新建控制器HomeController.php 新手模式 用上次的查询结果,作 ...

  2. 新游发布:《Don't touch the color》

    这是笨猫工作室最后一个Scratch 2.0游戏,经过笨猫工作室成员的不懈努力,游戏终于可以稳定运行.此次更新添加了最高分数显示,优化了系统流畅度.快来试玩吧!!! 卡搭蓝链:https://kada ...

  3. 03008_ServletContext

    1.什么是ServletContext? (1)ServletContext代表是一个web应用的环境(上下文)对象,ServletContext对象    内部封装是该web应用的信息,Servle ...

  4. luogu2865 [USACO06NOV]路障Roadblocks 次短路

    注意:如果是这么个写法,堆数组要开成n+m的. 为什么呢?设想一下从1到2有m条长度递减的路,这岂不是要入队m次-- #include <algorithm> #include <i ...

  5. 再谈H2的MVStore与MVMap

    对H2的[MVStore]: http://www.cnblogs.com/simoncook/p/5188105.html 这篇文章的补充. 概述 我们通常用的map,比如HashMap Linke ...

  6. day05_04 数据类型-数值、布尔值、字符串简介

    数据运算 数据类型初识 数字 整数 int(integer) 整型 长整型 在python3里面已经不区分整型和长整型了,统一都叫整型 在32位机器上,整数的位数为32位,取值范围为-2**31-2* ...

  7. linux 复制部分文件到另外的文件夹

    show the command: |xargs -i cp {} ../ 或者指定目录 |xargs -i cp {} /home/peter

  8. 九度oj 1006

    题目1006:ZOJ问题 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:20252 解决:3544 题目描述:                        对给定的字符串(只包含'z', ...

  9. 【bzoj4292】[PA2015]Równanie 暴力

    题目描述 对于一个正整数n,定义f(n)为它十进制下每一位数字的平方的和.现在给定三个正整数k,a,b,请求出满足a<=n<=b且k*f(n)=n的n的个数. 输入 第一行包含三个正整数k ...

  10. BZOJ4010 [HNOI2015]菜肴制作 【拓扑排序 + 贪心】

    题目 知名美食家小 A被邀请至ATM 大酒店,为其品评菜肴. ATM 酒店为小 A 准备了 N 道菜肴,酒店按照为菜肴预估的质量从高到低给予 1到N的顺序编号,预估质量最高的菜肴编号为1.由于菜肴之间 ...