我有一个列表,例如['A', 1, 'B', 2, 'C', 3]
我想要一个函数,以便我可以从列表中删除字符串并使其只有整数?如果有帮助,列表中总会有交替的字符串和整数。
答案 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]