在python中列表中的每个项目的字符串前面添加一个字符串

时间:2010-01-25 06:17:17

标签: python string loops for-loop

我有一个字符串中的网站列表,我正在做一个for循环,如果第一个索引不是“h”,则在前面添加“http”但是当我返回它时,列表没有改变。

n是我的网站列表 h是“http”

for p in n:
    if p[0]!="h":
        p= h+ p
    else:
        continue
return n

当我返回列表时,它返回我的原始列表并且没有附加“http”。有人可以帮帮我吗?

4 个答案:

答案 0 :(得分:15)

这也可以使用列表理解来完成:

n = [i if i.startswith('h') else 'http' + i for i in n]

答案 1 :(得分:3)

您需要重新分配列表项 - 字符串是不可变的,因此+=正在创建一个新字符串,而不是改变旧字符串。即:

for i, p in enumerate(n):
  if not p.startswith('h'):
    n[i] = 'http' + p

答案 2 :(得分:0)

n = [{True: '', False: 'http'}[p.startswith('h')] + p for p in n]

不要真的这样做。虽然它 工作。

答案 3 :(得分:0)

>>> n=["abcd","http","xyz"]

>>> n=[x[:1]=='h' and x or 'http'+x for x in n]

>>> n
['httpabcd', 'http', 'httpxyz']