我刚接触Python,对使用for循环更新列表有疑问。这是我的代码:
urls = ['http://www.city-data.com/city/javascript:l("Abbott");' , 'http://www.city-data.com/city/javascript:l("Abernathy");' ,
'http://www.city-data.com/city/Abilene-Texas.html' ,'http://www.city-data.com/city/javascript:l("Abram-Perezville");' ,
'http://www.city-data.com/city/javascript:l("Ackerly");' , 'http://www.city-data.com/city/javascript:l("Adamsville");',
'http://www.city-data.com/city/Addison-Texas.html']
for url in urls:
if "javascript" in url:
print url
url = url.replace('javascript:l("','').replace('");','-Texas.html')
print url
for url in urls:
if "javascript" in url:
url = url.replace('javascript:l("','').replace('");','-Texas.html')
print "\n"
print urls
我用第一个for循环检查语法是否正确,这个循环工作得很好。但是第二个for循环是我想使用的代码,但它没有正常工作。我该如何全局更新列表并在for循环之外打印或存储更新后的列表?
return s.url.replace('javascript:l("','').replace('");','-Texas.html')
-- 应该是 --return s.replace('javascript:l("','').replace('");','-Texas.html')
- Darren Haynesurls[:]
?它不会返回一个新的列表吗? - Jimmy Kaneurls[:]
的意思是用右侧可迭代对象的所有元素替换urls
列表中的所有元素。这与简单的urls = [...]
不同。如果他有类似a = b = [1, 2, 3]
的东西,然后我们使用b[:] = [x**2 for x in b]
,那么这将影响到a
和b
两个变量。 - Ashwini Chaudhary