python-3.x - 项目拒绝使用弹出功能、切片和删除删除,我该如何解决这个问题?
问题描述
所以我删除了我list
的空索引
['','','','','A','B','C','','']
我用了
list.pop[0]
list.pop[1]
list.pop[2]
list.pop[3]
list.pop[-1]
list.pop[-2]
为了删除空对象。
但它不会删除前 2 项并跳到 [A] at list.pop[3]
,当我不打算这样做时删除数据。
出了什么问题,我该如何解决?对不起,非 Pythonic 代码。
这是我使用的确切代码。
import requests, re
from bs4 import BeautifulSoup
url='https://bn.mappersguild.com/'
headers={"User-Agent": 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36'}
page = requests.get(url, headers=headers)
soup = BeautifulSoup(page.content, 'html.parser')
osurow = soup.find('td', string='osu')
osu = osurow.find_parent("table", {"class": "table table-sm table-dark table-hover col-6 col-md-3"})
osutext = osu.get_text()
osu = osu.find_all('a')
osuname = osutext.split('\n')
osuname.remove('osu')
osuname.pop(0)
osuname.pop(1)
osuname.pop(2)
osuname.pop(3) #Here's the point where it deletes - Mo -
osuname.pop(-1)
osuname.pop(-2)
osuname.pop(-3) #Here's the point where it deletes Zelq
print ('osu!standard profile listing')
for element in osu:
print(element)
print(osuname)
解决方案
让我们监控osuname
while pop
ping 东西的内容:
>>> osuname = ['','','','','A','B','C','','']
>>> osuname.pop(0); osuname
''
['', '', '', 'A', 'B', 'C', '', '']
>>> osuname.pop(1); osuname
''
['', '', 'A', 'B', 'C', '', '']
>>> osuname.pop(2); osuname
'A'
['', '', 'B', 'C', '', ''] # HOLD ON!
随着你pop
的事情,名单缩小了!因此,在 index 处找到的元素正在发生2
变化:
# Original list
['','','','','A','B','C','','']
^^ <- index 2
# List after pop(0); pop(1)
['', '', 'A', 'B', 'C', '', '']
^^^ <- index 2
要从列表中删除空字符串,filter
它:
>>> osuname = ['','','','','A','B','C','','']
>>> list(filter(lambda element: element != '', osuname))
['A', 'B', 'C']
推荐阅读
- flexbox - bootstrap 的 flex-column 填充全宽,如何不拉伸到全宽?
- javascript - 数组帮助 | JS
- solr - 在 Solr 7.x 中,如何仅对逗号而不是空格或其他特殊字符进行标记?
- javascript - Javascript绑定函数未按预期传递参数
- c# - c# mvc中文本框中的意义值是字符串还是数字
- reactjs - React Native SectionList 替换数据键
- javascript - 在javascript中使用文件列表进行多次拖放
- powershell - Get-PartitionSupportedSize 失败并出现错误
- java - 在 Spring Data 中分离实体
- python - 标签未出现在 Seaborn distplot