首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python水平拆分list

Python水平拆分list
EN

Stack Overflow用户
提问于 2018-03-30 11:35:07
回答 1查看 87关注 0票数 1

我有这样的代码:

代码语言:javascript
复制
url = requests.get('https://sneakernews.com/release-dates/').text
soup = BeautifulSoup(url, 'html.parser')

tags = soup.find_all('div', {'class': 'col lg-2 sm-3 popular-releases-box'})

for tag in tags:
    link = tag.find('a').get('href')
    tag1 = str(tag.text)
    tag2 = tag1.splitlines()
    print(tag2)
    if link == 'javascript:void(0);':
        link = 'Link not available'

我有这样的输出:

代码语言:javascript
复制
['March  ', 'OFF WHITE x Nike Air VaporMax']
['04.12  ', 'Nike Air VaporMax 97 "Silver Bullet"']
['April  ', 'adidas Yeezy Desert Rat 500 "Blush"']
['05.15  ', 'ACRONYM x Nike Air VaporMax MOC 2']

上面的输出是垂直的2个列表,我试着让每一行都成为一个列表。

EN

回答 1

Stack Overflow用户

发布于 2018-03-30 12:25:24

使用几个list comprehensionszip(),可以做到如下所示:

代码:

代码语言:javascript
复制
the_tags = [[x.strip() for x in tag.text.splitlines()] for tag in tags]
result = [x for x in zip(*the_tags)]

测试代码:

代码语言:javascript
复制
import requests
from bs4 import BeautifulSoup

url = requests.get('https://sneakernews.com/release-dates/').text
soup = BeautifulSoup(url, 'html.parser')

tags = soup.find_all('div', {'class': 'col lg-2 sm-3 popular-releases-box'})

the_tags = [[x.strip() for x in tag.text.splitlines()] for tag in tags]
print([x for x in zip(*the_tags)])

结果:

代码语言:javascript
复制
[('March', '04.12', 'April', '05.15'), 
 ('OFF WHITE x Nike Air VaporMax', 'Nike Air VaporMax 97 "Silver Bullet"', 
  'adidas Yeezy Desert Rat 500 "Blush"', 'ACRONYM x Nike Air VaporMax MOC 2'
 )
]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49568030

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档