在Python中为列表中的每个项添加字符串前缀
我有一个包含网站的字符串列表,我在用一个循环来检查每个网站,如果它的开头不是"h",就想在前面加上"http"。可是当我返回这个列表的时候,发现列表没有变化。
这里的n是我的网站列表,h是"http"
for p in n:
if p[0]!="h":
p= h+ p
else:
continue
return n
当我返回这个列表时,它还是我最开始的那个列表,没有加上"http"。有人能帮我吗?
4 个回答
0
n = [{True: '', False: 'http'}[p.startswith('h')] + p for p in n]
其实不要这样做。虽然这样做确实能奏效。
3
你需要重新分配这个列表的项目——字符串是不可变的,所以用 +=
其实是在创建一个新的字符串,而不是修改旧的那个。也就是说:
for i, p in enumerate(n):
if not p.startswith('h'):
n[i] = 'http' + p
15
这也可以通过列表推导式来实现:
n = [i if i.startswith('h') else 'http' + i for i in n]