Python - конвертировать строку в объект или массив - PullRequest
0 голосов
/ 18 июня 2019

У меня есть данные ниже, хранящиеся в переменной data_str, в которой есть строка класса.

 level  page_num    block_num   par_num line_num    word_num    left    top width   height  conf    text
 1  1   0   0   0   0   0   0   500 659 -1  
 2  1   1   0   0   0   35  41  422 560 -1  
 3  1   1   1   0   0   44  41  406 203 -1  
 4  1   1   1   1   0   98  41  341 10  -1  
 5  1   1   1   1   1   98  42  31  8   70  ‘When
 5  1   1   1   1   2   135 42  17  8   75  Dr.
 5  1   1   1   1   3   160 41  32  9   92  Umali
 5  1   1   1   1   4   197 44  25  6   96  rose
 5  1   1   1   1   5   227 42  11  8   96  to
 5  1   1   1   1   6   243 41  17  9   93  the
 5  1   1   1   1   7   265 41  52  10  91  deanship
 5  1   1   1   1   8   322 41  11  9   96  of
 5  1   1   1   1   9   337 41  18  8   96  the
 5  1   1   1   1   10  361 41  27  9   80  U.P.
 5  1   1   1   1   11  394 41  45  10  85  College

Каждый раз, когда я получаю доступ к data_str[0], он возвращает l.Я хочу получить доступ к первой строке и каждому элементу ячейки.Другими словами, я хочу сделать его объектом, чтобы я мог легко получить доступ к каждой его ячейке.Как я буду делать это в Python?Пожалуйста, помогите.

Ответы [ 2 ]

2 голосов
/ 18 июня 2019

Если он хранится в строке,

cells = data_str.split('\n')[1].split('\s') # first line in list

# all lines
lines = [line.split() for line in data_str.split('\n')]

Или используя csv lib для обработки всей строки:

from io import StringIO # Python 3
import csv

f = StringIO(data_str)
reader = csv.reader(f, delimiter='\s')

lines = [row for row in reader]
# first line
cells = lines[1]
1 голос
/ 18 июня 2019

строки - это массивы в Python, поэтому data_str[0] означает получение символа в позиции 0, то есть l

Так что вы можете:

  • Разделить строку на строкучтобы получить список строк.
  • Для каждой строки разделите ее, чтобы получить элементы для каждой строки.

Примерно так

rows = data_str.splitlines()
arr = [row.split() for row in rows]
# now you can access item at row 1, column 2 like arr[1][2]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...