从python中的列表中删除特定元素

2024-04-26 14:23:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一份名单,上面有一些国家和相关首都。 我只想删除首都创建一个新的国家名单[]和viceversa。 这是我的名单

countryCapitalList= ['AFGHANISTAN=', 'KABUL', 'ALASKA=', 'JUNEAU', 'ALBANIA=', 'TIRANA', 'ALGERIA=', 'ALGERI']

由于国家对应的是一个偶数,我尝试这样做:

^{pr2}$

但我得到一个错误:

del countryCapitalList[i]
IndexError: list assignment index out of range

我真的不明白为什么。有人能帮帮我吗?在


Tags: 错误国家偶数名单viceversaalgeriapr2albania
3条回答

对于这种特定情况,只需删除索引为奇数的元素:

In [1452]: countryList=countryCapitalList[:]

In [1453]: del countryList[1::2]

In [1454]: countryList
Out[1454]: ['AFGHANISTAN=', 'ALASKA=', 'ALBANIA=', 'ALGERIA=']

您得到的异常是因为您是按索引而不是按值删除的。在迭代过程中,列表变得越来越短,因此索引不再有意义。相反,我会按值删除

for x in countryCapitalList[:]:
     if isCapital(x):
          countryCapitalList.remove(x)

如果您的国家/地区的所有条目中都有“=”,而其他条目都没有,那么最干净的方法是

countryCapitalList = [x for x in countryCapitalList if "=" not in x]

这是在使用list comprehensions。它遍历列表,只选择那些没有“=”的条目。在

相关问题 更多 >