簡體   English   中英

嘗試使用循環枚舉刪除 function

[英]Trying remove function with enumerate in loops

我目前正在學習 python,我最近知道有一個名為enumerate的 function ,所以我試圖通過從 Coursera 找出解決此問題的另一種方法來更好地理解。 發生的事情是我在復制原始列表后嘗試使用 remove function 修改列表,因此for 循環不會混淆(它迭代原始列表,但我修改了重復列表)。 誰能知道我的代碼有什么問題? 之前感謝您的幫助。

def skip_elements(elements):
    # code goes here
    #new_elements=[]
    dup = elements
    for count, val in enumerate(elements):
        #if count % 2 == 0:
        #   new_elements.append(val)
        if count % 2 == 1:
            dup.remove(val)
    #return new_elements
    return dup

print(skip_elements(["a", "b", "c", "d", "e", "f", "g"])) 
# Should be ['a', 'c', 'e', 'g']
print(skip_elements(['Orange', 'Pineapple', 'Strawberry', 'Kiwi', 'Peach'])) 
# Should be ['Orange', 'Strawberry', 'Peach']

縮進在 Python 中非常重要。

一般的經驗法則是,無論你把分號放在哪里,你都應該在一個塊中縮進。

因此,您的代碼將是正確的,如下所示:

def skip_elements(elements):
    # code goes here
    # new_elements=[]
    dup = elements
    for count, val in enumerate(elements):
        # if count % 2 == 0:
        # new_elements.append(val)
        if count % 2 == 1:
            dup.remove(val)
    #return new_elements
    return dup
print(skip_elements(["a", "b", "c", "d", "e", "f", "g"]))
# Should be ['a', 'c', 'e', 'g']
print(skip_elements(['Orange', 'Pineapple', 'Strawberry', 'Kiwi', 'Peach']))
# Should be ['Orange', 'Strawberry', 'Peach']

另一個可能的問題是您的列表中是否有重復的項目。

例如:

print(skip_elements(["b", "c", "a", "b"]))
# Would result in ['c', 'b'] when ['b', 'a'] is expected

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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