【问题标题】:How to remove part of item and replace list elements in loop?如何删除部分项目并替换循环中的列表元素?
【发布时间】:2018-01-02 10:59:54
【问题描述】:

我做错了什么,这两个循环不起作用? 链接是一个列表。

links = ['newarklongtermparking.com',
 'www.airportparkingreservations.com',
 'airparkparking.com',
 'jfklongtermparking.com',
 'book2park.com',
 'globalairportparking.com',
 'neworleansparking.com',
 'parkwayparking.com',
 'www.airportparkinginc.com',
 'airportparkfly.com',
 'unitedairportparking.com',
 'www.way.com',
 'cheapairportparking.org',
 'wallypark.com',
 'parkbytheports.com',
 'www.cheapparkfly.com']

删除 www.

for a in links:
    if (a[0] == a[1] == a[2] == 'w'):
        a = a[4:]

添加正确的链接形式

for a in links:
    a = 'https://www.' + a

【问题讨论】:

  • 您的问题并没有提供太多信息。给minimal reproducible example
  • 欢迎来到 StackOverflow。请阅读并遵循帮助文档中的发布指南。 Minimal, complete, verifiable example 适用于此。在您发布 MCVE 代码并准确描述问题之前,我们无法有效地帮助您。我们应该能够将您发布的代码粘贴到文本文件中并重现您描述的问题。
  • 在第一个循环中分配回a 不会改变列表引用。
  • 另外,a.startswith('www') 是测试字符串是否以特定字符开头的更好方法。

标签: python python-3.x list loops


【解决方案1】:

你正在做的是修改循环变量。这根本不影响列表。如果你想修改元素,我建议使用enumerate,然后通过它们的索引访问列表项:

for i, a in enumerate(links):
    prefix = 'https://' if a.startswith('www') else 'https://www.'
    links[i] = prefix + a

经过处理后,links 拥有:

https://www.newarklongtermparking.com
https://www.airportparkingreservations.com
https://www.airparkparking.com
https://www.jfklongtermparking.com
https://www.book2park.com
https://www.globalairportparking.com
https://www.neworleansparking.com
https://www.parkwayparking.com
https://www.airportparkinginc.com
https://www.airportparkfly.com
https://www.unitedairportparking.com
https://www.way.com
https://www.cheapairportparking.org
https://www.wallypark.com
https://www.parkbytheports.com
https://www.cheapparkfly.com

【讨论】:

  • 认为您需要:else links[i] = 'https://www.' + a,因为他想使用列表中的所有链接,只是其中一些以“www”开头。而其他人则没有
  • @nanojohn 很好发现。谢谢。
  • @cᴏʟᴅsᴘᴇᴇᴅ 我会,但它说声誉太低
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-22
相关资源
最近更新 更多