点击上方“Python爬虫与数据挖掘”,进行关注
回复“书籍”即可获赠Python从入门到进阶共10本电子书
今
日
鸡
汤
茫茫江汉上,日暮欲何之。
大家好,我是Python进阶者。
前几天在Python白银交流群【凡人不烦人】问了一个Python
列表处理的问题,提问截图如下:
lst = ['(问答题)(2) 假设镀锌钢管', 'http://www.hack95.com/UpLoadImage/2019-10-10/a84f340e-6c67-42b1-8eae-3dc142818492.png)15暗配的清单工程量为50m,其余条件不变,依据上述相关定额计算分析镀锌钢管', 'http://www.hack95.com/UpLoadImage/2019-10-10/a84f340e-6c67-42b1-8eae-3dc142818492.png)15暗配项目的综合单价,并填入“工程量清单综合单价分析表”中。']
这里【dcpeng】给了一份代码,如下所示:
lst = [元素列表]
# print(len(lst))
new_lst = [lst[0]]
for item in lst[1:]:new_item = item.split(')')new_lst.extend([new_item[0], new_item[1]])
print(len(new_lst))
print(new_lst)
可以得到预期的结果:
l1 = sum([*map((lambda x: x.split(')') if 'png)' in x else [x]), lists)], [])
l1 = [x for x in l1 if x != '']
l2 = []
nums = []
for j, item in enumerate(l1):if 'png' in item:if item[0] != '!':b = ' '.join(l1[j - 1:j + 1]).split('nums.append(j)else:b = item.split('b = [x for x in b if x != '']l2.extend(b)else:l2.append(item)
lists = [l2[j] for j in range(len(l2)) if j+1 not in nums]
相当于方法一和方法二的结合版本,总算搞定了。
import re
data = '你上面发的这个字符串'
temp = re.findall(r'>(.*?)<|src="(.*?)"', data)
result = [i.replace('\u3000', ' ') for j in temp for i in j if i != '']
print(result)
【瑜亮老师】的正则表达式使用还是6啊!
最后感谢粉丝【凡人不烦人】提问,感谢【dcpeng】、【甯同学】、【瑜亮老师】给出的思路和代码解析,感谢【此类生物】、【猫药师Kelly】、【斌】、【ᯤ⁶ᴳ】等人参与学习交流。
大家在学习过程中如果有遇到问题,欢迎随时联系我解决(我的微信:pdcfighting),应粉丝要求,我创建了一些高质量的Python
付费学习交流群,欢迎大家加入我的Python
学习交流群!
------------------- End -------------------
往期精彩文章推荐:
盘点一个网络爬虫POST请求参数构造的问题
盘点一个Python基础中循环判断遇到一个小问题
重装pycharm和Python环境以后,以前的文件selenium获取不到元素了?
不使用内置函数的情况下,如何使用Python实现求平均值、最大值和最小值?
欢迎大家点赞,留言,转发,转载,感谢大家的相伴与支持
想加入Python学习群请在后台回复【入群】
万水千山总是情,点个【在看】行不行
/今日留言主题/
随便说一两句吧~~