[关闭]
@myles 2019-01-07T12:46:24.000000Z 字数 1525 阅读 707

python 之捡芝麻

未分类


1、芝麻之“zip()函数”

1)zip() 函数说明

序号 芝麻点 芝麻油 备注
1 zip 将2个以上的可迭代对象打包成一个个元组,然后返回由元组构造的列表 py2直接返回列表,py3为减少内存返回zip对象(可以使用list手动获取列表,仅能取一次);

2)举例说明

生成由一个个元组构成的单个列表...

  1. In [17]: a = [1,2,3]
  2. In [18]: b = ['x','y','z']
  3. In [19]: zipped = zip(a,b)
  4. In [20]: list(zipped)
  5. Out[20]: [(1, 'x'), (2, 'y'), (3, 'z')]

对多个列表进行zip封装,生成一个个的字典;

  1. In [31]: a
  2. Out[31]: ['k1', 'k2', 'k3']
  3. In [32]: b
  4. Out[32]: ['v1', 'v2', 'v3']
  5. In [33]: c
  6. Out[33]: ['x', 'y', 'z']
  7. In [34]: for i,ii,iii, in zip(a,b,c):
  8. ...: data = {
  9. ...: 'a':i,
  10. ...: 'b':ii,
  11. ...: 'c':iii}
  12. ...: print(data)
  13. ...:
  14. {'a': 'k1', 'b': 'v1', 'c': 'x'}
  15. {'a': 'k2', 'b': 'v2', 'c': 'y'}
  16. {'a': 'k3', 'b': 'v3', 'c': 'z'}

2、芝麻之“常用正则收集”

1)常用正则收集表

序号 常用正则表达式 表达式说明 其他
1 (.*?) 以非贪婪模式进行最小字符串匹配,对于逐行匹配非常好用;
2 (\S+) 只能对非空字符串进行至少一个字符以上的字符串匹配,遇到空字符串(\t\n\r...),即停止

2)举例说明

foirefox 浏览器中复制出来的headers头,现在进行编辑为字典格式

  1. Host: home.firefoxchina.cn
  2. User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Firefox/60.0
  3. Accept: application/json, text/javascript, */*; q=0.01
  4. Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
  5. Accept-Encoding: gzip, deflate, br
  6. Referer: https://home.firefoxchina.cn/
  7. X-Requested-With: XMLHttpRequest
  8. Cookie: uid=38oGHFwypOBgORgpH8u+Ag==; Hm_lvt_dd4738b5fb302cb062ef19107df5d2e4=1546050340,1546391781,1546562482,1546689456
  9. Connection: keep-alive

实际操作过程:(ctr+r 打开pycharm查找替换功能界面,然后勾选regex功能,最后按如下方法进行字符串匹配提取,然后重新格式化串联)
第1步:匹配提取需要进行格式化的字符串

  1. (.*?): (.*?)\n

第2步:对于括号提取的字符串内容进行重新构造串联

  1. '$1': '$2',\n

3、芝麻之“css selector 选择器”

具体内容请见w3school参考手册:
http://www.w3school.com.cn/cssref/css_selectors.ASP

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注