Python提取列表字符串中的项

s1 = "[('纸张', '木棉纯白艺术纸'), ('相册尺寸', '8*8'), ('纸质软封皮', '标准牛皮纸')]"

上面的字符串s1是一个列表格式的字符串,将s1中的列表中的每一个元素(每一个元素都是元组)取出来。

使用正则表达式,将元组匹配出来

import re
items = re.findall(r'[(].*?[)]', s1)
print(items)
for item in items:
    print(item,type(item))

 提取出的列表中的每一项元素,都是元组格式的字符串

>> 
["('纸张', '木棉纯白艺术纸')", "('相册尺寸', '8*8')", "('纸质软封皮', '标准牛皮纸')"]
>> 
('纸张', '木棉纯白艺术纸') <class 'str'>
('相册尺寸', '8*8') <class 'str'>
('纸质软封皮', '标准牛皮纸') <class 'str'>

我该如何把字符串元素转化为元组,知识盲区太大,我只想到两种方法,一种是替换和分隔,一种是正则提取。

1 通过正则提取

for item in attrs:
    print(item,type(item))
    ele_lst = re.findall("['](.*?)[']", item)
    tup_ele = tuple(ele)
    print(tup_ele,type(tup_ele))

得到结果:

('纸张', '木棉纯白艺术纸') <class 'str'>
('纸质软封皮', '标准牛皮纸') <class 'tuple'>
('相册尺寸', '8*8') <class 'str'>
('纸质软封皮', '标准牛皮纸') <class 'tuple'>
('纸质软封皮', '标准牛皮纸') <class 'str'>
('纸质软封皮', '标准牛皮纸') <class 'tuple'>

2 使用replace和split处理字符串

for item in attrs:
    print(item,type(item))
    ele = item.replace("(","").replace(")","").split(",")
    ele_tup = ()
    for e in ele:
        ele_tup = ele_tup + (e.strip().replace("'",""),)
    print(ele_tup,type(ele_tup))

结果输出

('纸张', '木棉纯白艺术纸') <class 'str'>
('纸张', '木棉纯白艺术纸') <class 'tuple'>
('相册尺寸', '8*8') <class 'str'>
('相册尺寸', '8*8') <class 'tuple'>
('纸质软封皮', '标准牛皮纸') <class 'str'>
('纸质软封皮', '标准牛皮纸') <class 'tuple'>

有过有简单高效的处理方法,请留言,让我学习一下。OV

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值