最近对数据进行处理的时候, 需要对一个列表里面的数据进行除杂处理, 只保留一部分有特定特征的值, 所以必须用到正则表达式对来匹配, 开始使用的是一下子就想到的就是通过循环列表内的每个元素来进行匹配.
例如, 下面就是使用简单循环从列表中用正则匹配筛选出所有的dog特征的数据:
正则表达式是为了匹配字符串中特定的字符, 是一个很强大的工具, 对数据筛选处理方面是用处很大的, 特别是爬虫, 数据分析等
需要对数据进行筛选的工作. 而下面的例子只用到了正则中很小的一部分功能
还未了解正则的可以到 菜鸟教程—正则表达式 学习一下.
import re
data_list = ['cat_1', 'dog_1', 'dog_2', 'cat_2', 'dog_3', 'cat_3']
new_data_list = []
for data in data_list:
if re.match('dog.*', data) != 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匿名函数来进行简化.
代码如下:
import re
data_list = ['cat_1', 'dog_1', 'dog_2', 'cat_2', 'dog_3', 'cat_3']
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