преобразовать список элементов в int, а не в строку в python - PullRequest
0 голосов
/ 23 января 2019

Я хочу преобразовать этот список в int, а не в элемент string внутри него.

, просто чтобы преобразовать их в целое число.

a = ["a \ n", "222 \ n", "bbb \ n", "7777"]

есть ли способ сделать это?

Я пытался

for x in a:
   x = int(a)

но это конвертирует все.

Ответы [ 3 ]

0 голосов
/ 23 января 2019

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

#this is all string
#a = ["a\n", "222\n", "bbb\n", "7777"]

#try with the below set
a = [10,11,'1','a','b',12,13,'14','c']

intPart = [x for x in a if isinstance(x, int)]
stringPart = [x for x in a if isinstance(x, str)]

print(intPart)
print(stringPart)

#output
#10, 11, 12, 13]                                                                                                                                               
#['1', 'a', 'b', '14', 'c']  
0 голосов
/ 23 января 2019

Вы можете попробовать преобразование и вернуть значение без изменений, если это невозможно:

def to_int(x):
    try:
        return int(x)
    except ValueError:
        return x

a = ["a\n", "222\n", "bbb\n", "7777"]
new_a = [to_int(x) for x in a]
print(new_a)

Вывод:

['a\n', 222, 'bbb\n', 7777]
0 голосов
/ 23 января 2019

Отредактировано: я не совсем понял, что OP означает «преобразовать этот список в int»

Полагаю, вы хотите:

a = ["a\n", "222\n", "bbb\n", "7777"]

[ int(el) if el.isnumeric() else el     
   for el in a 
]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...