2017-10-12 91 views
-2

列表中删除字符串我有一个列表,如['A', 1, 'B', 2, 'C', 3]从字符串和整数蟒蛇

我想要一个函数,这样我才能把我的列表中的字符串,使其只有整数?如果有帮助,列表中总会有交替的字符串和整数。

+1

'my_list [1:2]' – mshsayem

回答

0

因为你只是想删除每一个第二项你应该这样做: 模%获得除以后的余数。

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

你能解释一些添加到您的代码? – kvorobiev

+0

done @kvorobiev – Worm

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

输出:

[1, 2, 3] 
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)

它给你同样的结果。

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) 
0

只是多了一个选择 - 使用filter功能:

orig = ['A', 1, 'B', 2, 'C', 3] 
res = list(filter(lambda x: isinstance(x, int), orig)) 
print(res) 
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]