Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 1, 2020 11:35:08

Prikool3
Зарегистрирован: 2019-11-21
Сообщения: 9
Репутация: +  0  -
Профиль   Отправить e-mail  

Нужна помощь с массивами.

Нужна помощь: есть набор данных:

 Data = '''75 27 55
338 330 99
865 862 10
8 22 26
38 83 35
539 8 80
24 73 31
892 431 7
725 264 612
10 93 60
70 64 80
918 100 42
18 10 24
76 85 92
4 384 380
804 179 246
574 39 1351
13 54 6
163 95 162
213 203 10
55 14 342
12 8 7
7 83 13
72 42 40
96 63 279
46 9 52'''
Нужно эти данные сгруппировать в массив, в котором каждая строка данных будет отдельным массивом.
Сейчас есть:
 def Work_Array(A):
    Array = re.split(r'\n', A)
    A = []
    for i in Array:
        A.append(re.split(r' ', i))
    return Array_array(A)
здесь я получаю то, что нужно, но все данные типа str. Мне нужно int.
Дальше:
 def Array_array(A):
    Data = []
    Array = []
    for i in A:
        Array.clear()
        for k in i:
            Array.append(int(k))
        Data.append(Array)
    print(Data)
    return Data
и вот тут я сталкиваюсь с проблемой. в итоге массив Data хранит в себе только последнюю стоку (46 9 52) но много раз. Я понимаю почему это происходит, но не знаю как мне обойти эту проблему. Буду благодарен за помощь!

Офлайн

#2 Фев. 1, 2020 12:50:51

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10024
Репутация: +  857  -
Профиль   Отправить e-mail  

Нужна помощь с массивами.

  
>>> text = """
... 75 27 55
... 338 330 99
... 865 862 10
... 8 22 26
... 38 83 35
... 539 8 80
... 24 73 31
... 892 431 7
... 725 264 612
... 10 93 60
... 70 64 80
... 918 100 42
... 18 10 24
... 76 85 92
... 4 384 380
... 804 179 246
... 574 39 1351
... 13 54 6
... 163 95 162
... 213 203 10
... 55 14 342
... 12 8 7
... 7 83 13
... 72 42 40
... 96 63 279
... 46 9 52
... """
>>> 
>>> out = [list(map(int, i.split())) for i in text.splitlines() if i]
>>> out
[[75, 27, 55], [338, 330, 99], [865, 862, 10], [8, 22, 26], [38, 83, 35], [539, 8, 80], [24, 73, 31], [892, 431, 7], [725, 264, 612], [10, 93, 60], [70, 64, 80], [918, 100, 42], [18, 10, 24], [76, 85, 92], [4, 384, 380], [804, 179, 246], [574, 39, 1351], [13, 54, 6], [163, 95, 162], [213, 203, 10], [55, 14, 342], [12, 8, 7], [7, 83, 13], [72, 42, 40], [96, 63, 279], [46, 9, 52]]
>>>



Офлайн

#3 Фев. 1, 2020 14:01:07

Prikool3
Зарегистрирован: 2019-11-21
Сообщения: 9
Репутация: +  0  -
Профиль   Отправить e-mail  

Нужна помощь с массивами.

Спасибо за помощь

Офлайн

#4 Фев. 1, 2020 14:51:24

Prikool3
Зарегистрирован: 2019-11-21
Сообщения: 9
Репутация: +  0  -
Профиль   Отправить e-mail  

Нужна помощь с массивами.

А как это можно сделать без применения генератора списков? в таком формате не понимаю как оно работает

Офлайн

#5 Фев. 1, 2020 15:51:04

Romissevd
От: Счастье
Зарегистрирован: 2015-03-01
Сообщения: 533
Репутация: +  76  -
Профиль   Отправить e-mail  

Нужна помощь с массивами.

Если править твой код, то сделай так

 def Array_array(A):
    Data = []
    for i in A:
        Array = []
        for k in i:
            Array.append(int(k))
        Data.append(Array)
    print(Data)
    return Data

Офлайн

#6 Фев. 1, 2020 15:58:09

Prikool3
Зарегистрирован: 2019-11-21
Сообщения: 9
Репутация: +  0  -
Профиль   Отправить e-mail  

Нужна помощь с массивами.

Спасибо, работает)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version