添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

最近对数据进行处理的时候, 需要对一个列表里面的数据进行除杂处理, 只保留一部分有特定特征的值, 所以必须用到正则表达式对来匹配, 开始使用的是一下子就想到的就是通过循环列表内的每个元素来进行匹配.

例如, 下面就是使用简单循环从列表中用正则匹配筛选出所有的dog特征的数据:

正则表达式是为了匹配字符串中特定的字符, 是一个很强大的工具, 对数据筛选处理方面是用处很大的, 特别是爬虫, 数据分析等
需要对数据进行筛选的工作. 而下面的例子只用到了正则中很小的一部分功能

还未了解正则的可以到 菜鸟教程—正则表达式 学习一下.

# 筛选出data_list中所有的dog并保存在new_data_list中
import re
data_list = ['cat_1', 'dog_1', 'dog_2', 'cat_2', 'dog_3', 'cat_3']  # 原列表中既有dog也有cat, 并且无规律
new_data_list = []  # 保存筛选出来dog的列表
for data in data_list:  # 遍历列表
    if  re.match('dog.*', data) != None:  # 如果正则匹配出的数据不为None, 就将此数据添加到新列表中
        new_data_list.append(data)
print(new_data_list)

运行后的结果如下, 可以看出成功筛选出了所有的dog并保存在了新列表中

['dog_1', 'dog_2', 'dog_3']
Process finished with exit code 0

但是但是这个还是有点太多了, 而且python中这么多高级函数, 还有迭代器生成器, 肯定有跟简洁的方法, 所以就想到了使用
filter()函数还有lambda匿名函数来进行简化.

代码如下:

# 筛选出data_list中所有的dog并保存在new_data_list中
import re
data_list = ['cat_1', 'dog_1', 'dog_2', 'cat_2', 'dog_3', 'cat_3']  # 原列表中既有dog也有cat, 并且无规律
new_data_list = list(filter(lambda x: re.match('dog.*', x) != None, data_list))  # 生成新列表
print(new_data_list)

运行结果仍然很上面使用循环的一样, 但是却简单了不少, 只用了一行, 还不用新建空列表:

['dog_1', 'dog_2', 'dog_3']
Process finished with exit code 0

如果不知道filter()函数lambda匿名函数的具体用法, 可以到 filter—廖雪峰官方网站匿名函数—廖雪峰官方网站 学习.
看完应该就知道上面的用法了.

⚠️系个人总结, 如有更好的方法欢迎留言提出…

最近对数据进行处理的时候, 需要对一个列表里面的数据进行除杂处理, 只保留一部分有特定特征的值, 所以必须用到正则表达式对来匹配, 开始使用的是一下子就想到的就是通过循环列表内的每个元素来进行匹配.例如, 下面就是使用简单循环从列表中用正则匹配筛选出所有的dog特征的数据:正则表达式是为了匹配字符串中特定的字符, 是一个很强大的工具, 对数据筛选处理方面是用处很大的, 特别是爬虫, 数据分析等... #列表的数据不需要具有相同的类型,同一个列表可以同时存在字符串、数字等不同类型的值 mylist=["zyw",1998] print(mylist...
很多不太懂正则的朋友,在遇到需要用正则校验数据时,往往是在网上去找很久,结果找来的还是不很符合要求。所以我最近把开发常用的一些正则表达式整理了一下,包括校验数字、字符、一些特殊的需求等等。给自己留个底,也给朋友们做个参考。 一、校验数字的表达式 数字:^[0-9]*$ n位的数字:^\d{n}$ 至少n位的数字:^\d{n,}$ m-n位的数字:^\d{m,n}$ 零和非零开头的数字...
如果未匹配,则返回空列表。 一、pattern.findall()方法 语法: findall(string=None, pos=0, endpos=9223372036854775807, *, source=None) 函数作用: 在string[pos,endpos]区间从pos下标开始查找所有满足pattern的子串,直到endpos位置结束,并以列表的形式返回查找的结果,如果未找到则返回一个空列 def data_process(): dic = {} with open('./2204.geojson', 'r', encoding='utf8') as json_file: js = json.load(json_file) features = js['features'] for it 本文举例说明python3正则表达式的一些高级级法,主要是各类分组,可应用于 1、复杂网页文件的有用数据 例如,采用爬虫技术取得网页后,对网页内任何数据进行提取分析 2、 各类配置文件 可能是属性文件,读取属性文件的键值对
正则匹配匹配单个字符匹配多个字符匹配开头和结尾匹配分组基本使用方法1、match匹配2、search匹配3、findall查找4、sub替换5、split根据匹配进行切割字符串贪婪和非贪婪 正则表达式:匹配或查找符合某些规则的字符串数据 python通过正则表达式对字符串进行匹配需要使用re模块 匹配单个字符
正则表达式通常被用来检索、替换那些符合某个模式的文本。正则表达式-----通常用于判断语句,用来检查某一字符串是否满足某一格式普通字符包括大小写字母、数字、标点符号及一些其他符号元字符是指在正则表达式具有特殊意义的专用字符,可以用来规定其前导字符(即位于字符前面的字符)在目标对象的出现模式。 -w: 表示精确匹配-E:开启扩展的正则表达式-c: 计算找到 ‘搜寻字符串’ 的次数-i: 忽略大小写-o: 只显示被模式匹配到的字符串-v: 反向选择,亦即显示出没有 ‘搜寻字符串’ 内容的那一行!(
本节我们看一下正则表达式的相关用法,正则表达式是处理字符串的强大的工具,它有自己特定的语法结构,有了它,实现字符串的检索、替换、匹配验证都不在话下。 当然对于爬虫来说,有了它,我们从HTML里面提取我们想要的信息就非常方便了。 说了这么多,可能我们对它到底是个什么还是比较模糊,下面我们就用几个实例来感受一下正则表达式的用法。 我们打开开源国提供
Python ,可以使用 map 函数对列表的偶数进行筛选。首先,需要定义一个函数,用于判断一个数是否为偶数。然后,使用 map 函数将该函数映射到列表的每个元素上,并使用 filter 函数筛选出返回值为 True 的元素。 例如,假设我们有一个列表 `numbers`,包含了一些整数。我们可以这样使用 map 函数对偶数进行筛选: ```python def is_even(x): return x % 2 == 0 even_numbers = list(filter(is_even, numbers)) 上面的代码定义了一个函数 `is_even`,用于判断一个数是否为偶数。然后,使用 map 函数将该函数映射到列表 `numbers` 的每个元素上,并使用 filter 函数筛选出返回值为 True 的元素。最后,使用 list 函数将过滤后的结果转换为列表,存储在变量 `even_numbers` 。 python selenium出现TypeError: __init__() takes 2 positional arguments but 3 were given错误解决方法 19098