[英]Python - Way to distinguish between item index in a list and item's contents in a FOR loop?
例如,如果我想遍歷列表並對除最終列表條目之外的所有條目執行某些操作,則可以這樣做:
z = [1,2,3,4,2]
for item in z:
if item != z[-1]:
print z.index(item)
但是,我得到的不是“ ... 0 1 2 3”,而是“ ... 0 2 3”。
有沒有一種方法可以對列表中除最后一個項目(列表中有相同項目時)之外的所有項目執行操作,而無需使用“ for x in range(len(list)-1)”這種解決方案? 即,我想繼續使用“用於列表中的項目”。
非常感謝!
使用切片:
for item in z[:-1]:
# do something
您可以使用:
for index, item in enumerate(z):
if index != len(z)-1:
print index
for index, item in enumerate(your_list):
do_something
[z.foo() for z in z[:-1]
def all_but_last(iterable):
iterable= iter(iterable)
try: previous= iterable.next()
except StopIteration: return
for item in iterable:
yield previous
previous= item
將其放在模塊中,並在需要時使用它。
就您而言,您可以:
for item in all_but_last(z):
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.