2015-03-08 2 views
0

У меня есть задание, но я застрял, мне нужно проанализировать список и отделить цифры от символов и создать 2 разных списка, добавив числа в один список и символы к другому. Сейчас у меня есть этот список:Отделяющие номера от символов в списках; python

[1, '+', '(', 2, '+', 3, ')'] 

что мне нужно иметь 2 других списков выглядеть следующим образом:

numbers=[1,2,3] 
symbols=['+','(','+',')'] 

, сохраняя при этом исходный список нетронутым. код у меня до сих пор:

def separador(): 
    numbers=[] 
    symbols=[] 
    countlen=len(out1) 
    listcount=0 
    while listcount!=countlen: 
     pos=out1[listcount] 
     if pos==int: 
      numbers.append(pos) 
     elif sim=='+': 
      symbols.append(pos) 
    print(numbers) 
    print(symbols) 

Я пытаюсь анализировать каждую часть списка, сравнивая счетчик с длиной списка, то каждый из них сравнивается, как если бы это жало или число, то оно должно быть добавлено в правильный список. но он не работает. Помогите пожалуйста

ответ

3

Числа представляют собой целые числа, символы просто строки:

numbers = [i for i in the_list if isinstance(i, int)] 
symbols = [i for i in the_list if isinstance(i, str)] 
+0

Если вы хотите поддержать поплавки просто добавить или в состоянии. –

+0

isinstance может принимать кортежи, так что вы можете просто сделать 'isinstance (i, (int, float))' –

+0

вы также можете поддерживать поплавки более лаконично: 'isinstance (i, (int, float))' – akgill

Смежные вопросы