удалить ‘ из всех элементов списка

#python #list #formatting #strip

#python #Список #форматирование #Стриптиз

Вопрос:

Итак, я преобразовал каждую строку в текстовом файле в элемент списка, выполнив следующее:
chkseq=[line.strip() for line in open("sequence.txt")]
Поэтому, когда я печатаю chkseq, я получаю это:
['3','3']
Я бы хотел, чтобы вместо этого он выглядел так:
[3,3]
Я знаю, что это возможно, я просто не уверен, как! Мне нужно, чтобы они были промежуточными, а не строками. Итак, если все остальное не удается, это моя главная цель в этом: создать список из файла .txt, члены которого являются промежуточными (который будет содержать весь файл .txt).
Спасибо!! -OSFTW

Ответ №1:

Похоже, вы хотите интерпретировать строки как целые числа. Используйте int для этого:

 chkseq = [int(line) for line in open("sequence.txt")] 
  

Он также может быть написан с использованием map вместо понимания списка:

 chkseq = map(int, open("sequence.txt"))
  

Комментарии:

1. Это именно то, что мне было нужно, спасибо! Будет выбрано в качестве ответа через 8 минут временного окна 🙂

Ответ №2:

выполните итерацию по элементам вашего списка и распечатайте их с вашим предпочтительным форматированием, а не полагаться на форматирование по умолчанию при печати всего списка сразу.

Ответ №3:

Допустим, ваш массив называется input, и вы хотите сохранить значение в массиве с именем chkseq, ваш код будет:

 chkseq = [int(i) for i in input]
  

Или, если вы хотите сделать все в одной строке:

 chkseq = [int(i.strip()) for i in open("sequence.txt")]
  

Комментарии:

1. in является ключевым словом — невозможно вызвать массив in !

2. да, я заметил это и исправил это сразу после отправки ответа.

Ответ №4:

Передача строки в int конструктор попытается превратить ее в int .

 >>> int('3')
3
>>> int('foo')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: 'foo'