列表中的字符串项:如何删除某些关键字?
String items in list: how to remove certain keywords?
我有一组如下所示的链接:
links = ['http://www.website.com/category/subcategory/1',
'http://www.website.com/category/subcategory/2',
'http://www.website.com/category/subcategory/3',...]
我想从这个列表中提取1
、2
、3
等,并将提取的数据存储在subcategory_explicit
中。它们存储为 str
,我无法使用以下代码获取它们:
subcategory_explicit = [cat.get('subcategory') for cat in links if cat.get('subcategory') is not None]
我是否必须将数据类型从 str
更改为其他类型?获取和存储提取值的更好方法是什么?
subcategory_explicit = [i[i.find('subcategory'):] for i in links if 'subcategory' in i]
这通过切片使用子字符串,从 "subcategory" 中的 "s" 开始,直到字符串结束。通过将 len('subcategory')
添加到 find
的值,您可以排除 "subcategory" 并获得“/#”(其中 # 是任何数字)。
试试这个(使用 re 模块):
import re
links = [
'http://www.website.com/category/subcategory/1',
'http://www.website.com/category/subcategory/2',
'http://www.website.com/category/subcategory/3']
d = "|".join(links)
# 'http://www.website.com/category/subcategory/1|http://www.website.com/category/subcategory/2|http://www.website.com/category/subcategory/3'
pattern = re.compile("/category/(?P<category_name>\w+)/\d+", re.I)
subcategory_explicit = pattern.findall(d)
print(subcategory_explicit)
我有一组如下所示的链接:
links = ['http://www.website.com/category/subcategory/1',
'http://www.website.com/category/subcategory/2',
'http://www.website.com/category/subcategory/3',...]
我想从这个列表中提取1
、2
、3
等,并将提取的数据存储在subcategory_explicit
中。它们存储为 str
,我无法使用以下代码获取它们:
subcategory_explicit = [cat.get('subcategory') for cat in links if cat.get('subcategory') is not None]
我是否必须将数据类型从 str
更改为其他类型?获取和存储提取值的更好方法是什么?
subcategory_explicit = [i[i.find('subcategory'):] for i in links if 'subcategory' in i]
这通过切片使用子字符串,从 "subcategory" 中的 "s" 开始,直到字符串结束。通过将 len('subcategory')
添加到 find
的值,您可以排除 "subcategory" 并获得“/#”(其中 # 是任何数字)。
试试这个(使用 re 模块):
import re
links = [
'http://www.website.com/category/subcategory/1',
'http://www.website.com/category/subcategory/2',
'http://www.website.com/category/subcategory/3']
d = "|".join(links)
# 'http://www.website.com/category/subcategory/1|http://www.website.com/category/subcategory/2|http://www.website.com/category/subcategory/3'
pattern = re.compile("/category/(?P<category_name>\w+)/\d+", re.I)
subcategory_explicit = pattern.findall(d)
print(subcategory_explicit)