gpt4 book ai didi

python - 根据前一个元素递增下一个元素

转载 作者:行者123 更新时间:2023-11-28 19:33:16 25 4
gpt4 key购买 nike

当循环遍历列表时,您可以使用列表的当前项。例如,如果你想用其他的替换某些项目,你可以使用:

a=['a','b','c','d','e']

b=[]
for i in a:
if i=='b':
b.append('replacement')
else:
b.append(i)

print b
['a', 'replacement', 'c', 'd', 'e']

但是,我希望替换某些值不是基于索引 i,而是基于索引 i+1。我已经尝试了很长时间,但我似乎无法让它发挥作用。我想要这样的东西:

c=['a','b','c','d','e']

d=[]
for i in c:
if i+1=='b':
d.append('replacement')
else:
d.append(i)


print d

d=['replacement','b','c','d','e']

有什么办法可以实现吗?

最佳答案

使用 list comprehension连同 enumerate

>>> ['replacement' if a[i+1]=='b' else v for i,v in enumerate(a[:-1])]+[a[-1]]
['replacement', 'b', 'c', 'd', 'e']

代码会替换下一个元素为 b 的所有元素。然而,为了处理最后一个索引并防止 IndexError,我们只需附加最后一个元素并循环到倒数第二个元素。


没有列表理解

a=['a','b','c','d','e']
d=[]
for i,v in enumerate(a[:-1]):
if a[i+1]=='b':
d.append('replacement')
else:
d.append(v)
d.append(a[-1])
print d

关于python - 根据前一个元素递增下一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34422238/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com