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