簡體   English   中英

Python-區分列表中的項目索引和FOR循環中項目內容的方法?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM