我有一个字符串中的网站列表,我正在做一个for循环,如果第一个索引不是“h”,则在前面添加“http”但是当我返回它时,列表没有改变。
n是我的网站列表 h是“http”
for p in n:
if p[0]!="h":
p= h+ p
else:
continue
return n
当我返回列表时,它返回我的原始列表并且没有附加“http”。有人可以帮帮我吗?
答案 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']