Python 从列表中删除元素,代码只剩下一个
我正在用字符串和方法开始python练习。(我知道还有一些额外的打印语句和注释。)目标是从列表中返回其他每一项。因此,对于第一个例子,目标是返回-#应该是['a','c','e','g'] 我很挣扎,因为我不明白为什么我的代码不能从列表中删除“b”。我错过了什么 我已经研究了以下具体问题。(加上其他)Python 从列表中删除元素,代码只剩下一个,python,python-3.x,string,list,methods,Python,Python 3.x,String,List,Methods,我正在用字符串和方法开始python练习。(我知道还有一些额外的打印语句和注释。)目标是从列表中返回其他每一项。因此,对于第一个例子,目标是返回-#应该是['a','c','e','g'] 我很挣扎,因为我不明白为什么我的代码不能从列表中删除“b”。我错过了什么 我已经研究了以下具体问题。(加上其他) 如果您查看程序的调试输出,您将看到循环并没有像它应该的那样从L_元素一直降到1。这是因为您正在缩短循环中的元素,因此循环(对于元素中的x)不会像您期望的那样频繁执行。如果将元素中x的更
如果您查看程序的调试输出,您将看到循环并没有像它应该的那样从
L_元素
一直降到1。这是因为您正在缩短循环中的元素
,因此循环(对于元素中的x
)不会像您期望的那样频繁执行。如果将元素中x的更改为范围内i(L_元素)的,
将按预期工作
不过,将此作为列表编写要简单得多:
def skip_elements(elements):
return [e for i, e in enumerate(elements) if i % 2 == 0]
如果您查看程序的调试输出,您将看到循环并没有像它应该的那样从L_元素
一直降到1。这是因为您正在缩短循环中的元素
,因此循环(对于元素中的x
)不会像您期望的那样频繁执行。如果将元素中x的更改为范围内i(L_元素)的,
将按预期工作
不过,将此作为列表编写要简单得多:
def skip_elements(elements):
return [e for i, e in enumerate(elements) if i % 2 == 0]
您可以使用列表保存每个偶数索引[x代表列表中的x如果list.index(x)%2==0]
@alec,请不要使用list
作为名称。对不起,我认为这样做会更清楚,而不是使用另一个变量名称。正如Stephen所说,“list”是一个内置函数的名称,不应该用作变量名。您可以使用list来保存每个偶数索引[x代表列表中的x如果list.index(x)%2==0]
@alec,请不要使用list
作为名称。对不起,我认为这样做会更清楚,而不是使用另一个变量名称。正如Stephen所说,“list”是一个内置函数的名称,不应该用作变量名。我得到了其中的大部分——特别是我减少了循环,而L_元素没有得到一个。这是跟进的关键。但在这种情况下,“列表理解”是什么呢。我知道我可以用谷歌搜索,但那是一个页面的兔子洞。(无论如何,我会的。)我实际上是在尽量保持我所知道的范围内。这句话对你们来说可能更简单,但对我来说,这几乎就是类固醇上的物理。谢谢。@LynnLCrawford最好读一下手册;它解释了列表(或字典)理解基本上是for循环的缩写。这是一个极好的资源。我可能会把它打印一段时间!或者至少把它放在一个窗口里。我得到了大部分——特别是我减少了我的循环,而L_元素没有达到一个。这是跟进的关键。但在这种情况下,“列表理解”是什么呢。我知道我可以用谷歌搜索,但那是一个页面的兔子洞。(无论如何,我会的。)我实际上是在尽量保持我所知道的范围内。这句话对你们来说可能更简单,但对我来说,这几乎就是类固醇上的物理。谢谢。@LynnLCrawford最好读一下手册;它解释了列表(或字典)理解基本上是for循环的缩写。这是一个极好的资源。我可能会把它打印一段时间!或者至少把它放在窗户里。