Найти - Пользователи
Полная версия: Нужна помощь с массивами.
Начало » Python для новичков » Нужна помощь с массивами.
1
Prikool3
Нужна помощь: есть набор данных:
 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) но много раз. Я понимаю почему это происходит, но не знаю как мне обойти эту проблему. Буду благодарен за помощь!
py.user.next
  
>>> 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]]
>>>
Prikool3
Спасибо за помощь
Prikool3
А как это можно сделать без применения генератора списков? в таком формате не понимаю как оно работает
Romissevd
Если править твой код, то сделай так
 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
Prikool3
Спасибо, работает)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB