猿问

如何从元组列表中删除所有字符串python

我正在尝试从元组列表中删除所有字符串


ListTuples = [(100, 'AAA'), (80, 'BBB'), (20, 'CCC'), (40, 'DDD'), (40, 'EEE')]

我已经开始尝试寻找解决方案:


output = [i for i in ListTuples if i[0] == str]


print(output)

但我似乎无法理解如何获得如下输出:


[(100), (80), (20), (40), (40)]

格式始终为 ( int, str)。


翻过高山走不出你
浏览 237回答 3
3回答

饮歌长啸

使用嵌套元组理解和isinstance:output = [tuple(j for j in i if not isinstance(j, str)) for i in ListTuples]输出:[(100,), (80,), (20,), (40,), (40,)]请注意,元组中有尾随逗号以将它们与例如(100)相同的100.

慕侠2389804

由于提取每个元组的第一项就足够了,您可以解包并使用列表理解。对于元组列表:res = [(value,) for value, _ in ListTuples]  # [(100,), (80,), (20,), (40,), (40,)]如果您只需要一个整数列表:res = [value for value, _ in ListTuples]     # [100, 80, 20, 40, 40]对于后者的功能替代品,您可以使用operator.itemgetter:from operator import itemgetterres = list(map(itemgetter(0), ListTuples))   # [100, 80, 20, 40, 40]

汪汪一只猫

尝试这个ListTuples = [(100, 'AAA'), (80, 'BBB'), (20, 'CCC'), (40, 'DDD'), (40, 'EEE')]ListInt = []ListStr = []for item in ListTuples:    strAux = ''    intAux = ''    for i in range(0, len(item)):        if(isinstance(item[i], str)):            strAux+=item[i]         else:            intAux+=str(item[i])    ListStr.append(strAux)    ListInt.append(intAux)print(ListStr)'''TO CONVERT THE STR LIST TO AN INT LIST'''output= list(map(int, ListInt)) print(output)输出是 [100, 80, 20, 40, 40]
随时随地看视频慕课网APP

相关分类

Python
我要回答