我正在用字符串和方法开始python练习。(我知道还有一些额外的打印语句和注释。)目标是从列表中返回其他每一项。因此,对于第一个例子,目标是返回-#应该是['a','c','e','g']
我很挣扎,因为我不明白为什么我的代码不能从列表中删除“b”。我错过了什么
我已经研究了以下具体问题。(加上其他)
def skip_elements(elements):
L_elements = len(elements)
for x in elements:
print("This is L_elements: " , L_elements)
#print(x)
if (L_elements % 2 == 0):
elements.pop((L_elements-1))
print(elements)
if (L_elements == 2):
print("This is L_elements: " , L_elements, "Should equal 2")
L_elements = L_elements - 1
return elements
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([])) # Should be []
如果您查看程序的调试输出,您将看到循环并没有像它应该的那样从
L_elements
一直降到1。这是因为您正在缩短循环中的elements
,因此循环(for x in elements
)的执行频率没有预期的高。如果将for x in elements
更改为for i in range(L_elements)
,它将按预期工作不过,将此作为列表编写要简单得多:
相关问题 更多 >
编程相关推荐