gpt4 book ai didi

python - 如何使循环从列表的中间迭代到开头?

转载 作者:行者123 更新时间:2023-12-05 00:50:08 31 4
gpt4 key购买 nike

我正在尝试使用 for i in range() 循环在列表中从列表索引的中间迭代到开头。我该怎么做?假设我们有一个列表

a = ['apple', 'peach', 'orange', 'melon', 'banana'] 

如何从 'orange' 迭代到 'apple'

我的预测:

for i in range(a[orange], 0)

我是编程新手,很抱歉这个明显的问题。

最佳答案

你快到了...使用 list.index 查找值,然后从列表中反转一个切片,例如:

a = ['apple', 'peach', 'orange', 'melon', 'banana']
b = a[a.index('orange')::-1]
# ['orange', 'peach', 'apple']

您可能希望对列表中未找到该值的位置进行一些错误处理,例如:

try:
b = a[a.index('not_in_list')::-1]
except ValueError:
b = [] # or other sensible result

然后可能是一个辅助函数:

def backwards_from(lst, value):
try:
return lst[lst.index(value)::-1]
except ValueError:
return [] # or other sensible result

for item in backwards_from(a, 'orange'):
print item
#orange
#peach
#apple

for item in backwards_from(a, 'cabbage'):
print item
# nothing to print

如果你真的,真的想使用 range,那么你从索引开始,递减 -1,直到列表的开始(即 -1因为结尾不包含在范围内),例如:

for idx in range(a.index('orange'), -1, -1):
print a[idx]

关于python - 如何使循环从列表的中间迭代到开头?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28770135/

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