python中for循环和列表_For循环中的Python列表

您可以使用其索引更新列表项:

for i, url in enumerate(urls):

if "javascript" in url:

urls[i] = url.replace('javascript:l("','').replace('");','-Texas.html')

另一种方法是使用列表理解:

def my_replace(s):

return s.replace('javascript:l("','').replace('");','-Texas.html')

urls[:] = [my_replace(url) if "javascript" in url else url for url in urls]

这里urls [:]表示用列表推导创建的新列表替换urls列表的所有项目.

您的代码无效的原因是您将变量url分配给其他内容,并且将对象的引用之一更改为指向其他内容不会影响其他引用.所以,你的代码相当于:

>>> lis = ['aa', 'bb', 'cc']

>>> url = lis[0] #create new reference to 'aa'

>>> url = lis[0].replace('a', 'd') #now assign url to a new string that was returned by `lis[0].replace`

>>> url

'dd'

>>> lis[0]

'aa'

另请注意,str.replace总是返回一个新的字符串副本,它永远不会更改原始字符串,因为字符串在Python中是不可变的.如果lis [0]是一个列表,并且你使用.append,.extend等对它执行了任何就地操作,那么这也会影响原始列表.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值