Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python中从列表中删除特定元素_Python_List - Fatal编程技术网

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

在python中从列表中删除特定元素,python,list,Python,List,我有一份包含一些国家和相关首都的清单。 我只想删除大写字母,以创建新的countryList[]和viceversa。 这是我的清单 countryCapitalList= ['AFGHANISTAN=', 'KABUL', 'ALASKA=', 'JUNEAU', 'ALBANIA=', 'TIRANA', 'ALGERIA=', 'ALGERI'] 由于国家对应的是偶数,我尝试这样做: i = 0 for x in countryCapitalList[:]:

我有一份包含一些国家和相关首都的清单。 我只想删除大写字母,以创建新的countryList[]和viceversa。 这是我的清单

countryCapitalList= ['AFGHANISTAN=', 'KABUL', 'ALASKA=', 'JUNEAU', 'ALBANIA=', 'TIRANA', 'ALGERIA=', 'ALGERI']
由于国家对应的是偶数,我尝试这样做:

    i = 0

    for x in countryCapitalList[:]:
        del countryCapitalList[i]
        i = i + 1



    print countryCapitalList
但我得到了这个错误:

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

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

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

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]

这是在使用。它遍历列表,只选择其中没有“=”的条目

谢谢,这就行了