从字符串和ints python列表中删除字符串

时间:2017-10-12 06:42:54

标签: python python-3.x

我有一个列表,例如['A', 1, 'B', 2, 'C', 3]

我想要一个函数,以便我可以从列表中删除字符串并使其只有整数?如果有帮助,列表中总会有交替的字符串和整数。

6 个答案:

答案 0 :(得分:2)

您可以简单地遍历列表,只保留元素类型为整数:

original_list = ['A', 1, 'B', 2, 'C', 3]

[n for n in original_list if type(n) is int]

哪个输出

[1, 2, 3]

如果要将其包装到函数中,可以使用:

def remove_all_but_int(my_list):
    my_list = [n for n in my_list if type(n) is int]
    return (my_list)

new_list = remove_all_but_int(original_list)

这会给你相同的结果。

答案 1 :(得分:1)

a = ['A', 1, 'B', 2, 'C', 3]
b = [x for x in a if isinstance(x, int)]
print(b)

输出:

[1, 2, 3]

答案 2 :(得分:0)

因为你只想删除每一个项目,你应该这样做: 模数%在分割后得到余数。

count = 0
for c in lista: # iterate the list
    if count % 2 == 0: # every second iteration
        lista.remove(c) # remove 

答案 3 :(得分:0)

1

a=['A', 1, 'B', 2, 'C', 3]
for i in a:
    if i.isalpha():
        a.remove(i)
print (a)

2

a=['A', 12, 'B', 2, 'C', 3]
b=[x for x in a if type(x) is int]
print (b)

答案 4 :(得分:0)

还有一个选项 - 使用filter功能:

orig = ['A', 1, 'B', 2, 'C', 3]
res = list(filter(lambda x: isinstance(x, int), orig))
print(res)

答案 5 :(得分:0)

一线解决方案:

list_1=['A', 1, 'B', 2, 'C', 3]



print([i for i in list_1 if not isinstance(i,str)])

如果您在理解上述语法时遇到问题,请参阅详细解决方案:

new_list=[]

for i in list_1:
    if not isinstance(i,str):
        new_list.append(i)

print(new_list)

输出:

[1, 2, 3]