Вложенный список строк, разбитых по пробелам - PullRequest
0 голосов
/ 17 января 2020

Привет, это мой первый пост, извините, если я его странно форматирую или что-то в этом роде. В любом случае, я сейчас нахожусь в python, пытаясь решить проблему. И я должен прочитать таблицу текста в моей программе, и я хочу, чтобы она в основном разбивала каждую строку слов на список, а затем каждое слово должно иметь свой собственный индекс. это код, который я сейчас использую:

with open(database, "r") as data:
    datatext = data.read()

datatext = datatext.replace(",", " ")

datarr = datatext.split("\n")

reader = csv.reader(datarr)

print([word for word in [row for row in reader]])

, где база данных представляет файл текста. Он делает каждую строку текста в базе данных своим собственным вложенным списком, однако он берет все слова, разделенные пробелами, и превращает их в одну строку, поэтому каждый вложенный список имеет индекс только 0. Например:

[['name AGATC TTTTTTCT AATG TCTAG GATA TATC GAAA TCTG'], ['Albus 15 49 38 5 14 44 14 12'], ['Cedric 31 21 41 28 30 9 36 44'], ['Draco 9 13 8 26 15 25 41 39']... etc]

но на самом деле я хочу:

[['name', 'AGATC', 'TTTTTTCT', 'AATG', 'TCTAG', 'GATA', 'TATC', 'GAAA', TCTG'], ['Albus', '15', '49', '38', '5', '14', '44', '14', '12']... etc]

В основном я хочу, чтобы каждое слово / строка были своим собственным индексом во вложенном списке. Может ли кто-нибудь помочь мне с этим? Я пытался гуглить, но не смог найти правильное решение. Надеюсь, это не было смутно написано. Отлично подходит для любых ответов:)

редактировать: как текстовый файл написан:

name,AGATC,TTTTTTCT,AATG,TCTAG,GATA,TATC,GAAA,TCTG
Albus,15,49,38,5,14,44,14,12
Cedric,31,21,41,28,30,9,36,44
Draco,9,13,8,26,15,25,41,39

последнее редактирование: удаление datatext.replace (...) решил это: =)

Ответы [ 2 ]

0 голосов
/ 17 января 2020

Вы слишком усложняете вещи. Следующего должно быть достаточно:

with open(database, "r") as data:
     reader = csv.reader(data)
     print([row for row in reader])
0 голосов
/ 17 января 2020

Трудно помочь без образца базы данных, которую вы открываете. Но я бы предположил, что это csv.reader, который разделяется на пустое пространство. Попробуйте воспроизвести параметр delimiter в этой функции. Я думаю, что-то вроде csv.reader(datarr, delimiter=' ') будет работать. Но, опять же, потребуются образцы данных для работы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...