从列表中删除字符时的不同输出-Python

从列表中删除字符时的不同输出-Python,python,list,web-scraping,character,Python,List,Web Scraping,Character,我正在用python进行一些web抓取,我想从列表的每个元素中删除元素“.”。我有两种方法,但只有一种给出正确的输出。代码在上面 import urllib2 from bs4 import BeautifulSoup first=urllib2.urlopen("http://www.admision.unmsm.edu.pe/res20130914/A.html").read() soup=BeautifulSoup(first) w=[] for q in soup.find_all('t

我正在用python进行一些web抓取,我想从列表的每个元素中删除元素“.”。我有两种方法,但只有一种给出正确的输出。代码在上面

import urllib2
from bs4 import BeautifulSoup
first=urllib2.urlopen("http://www.admision.unmsm.edu.pe/res20130914/A.html").read()
soup=BeautifulSoup(first)
w=[]
for q in soup.find_all('tr'):
    for link in q.find_all('a'):
        w.append(link["href"])

s = [ i.replace(".","") for i in w ]

l=[]

for t in w:
    l=t.replace(".","")
如果运行
print s
,则输出是正确的输出,但如果运行
print l
,则输出不是正确的


我想知道为什么
s
给出了正确的输出,而
l
没有。在循环中,您在每次迭代中替换整个列表,而不是像单行示例中那样附加到它

相反,请尝试:

for t in w:
    l.append(t.replace(".",""))

您每次都在替换列表,列表将被覆盖。因此,您将获得迭代后的最后一个元素!希望有帮助

import urllib2
from bs4 import BeautifulSoup
first=urllib2.urlopen("http://www.admision.unmsm.edu.pe/res20130914/A.html").read()
soup=BeautifulSoup(first)
w=[]
for q in soup.find_all('tr'):
    for link in q.find_all('a'):
        w.append(link["href"])

s = [ i.replace(".","") for i in w ]
print s
l=[]

for t in w:
    l.append(t.replace(".",""))
print l
干杯