#python #arrays #string #numbers
#python #массивы #строка #числа
Вопрос:
Я хотел бы превратить следующую строку в массив с 3 столбцами и несколькими строками, если это возможно в python. Я пытаюсь превратить следующее в работоспособный набор числовых данных — используя массив, и в настоящее время я не могу понять, как превратить его из строки -> массив. Я вижу, что это почти в том формате, в котором я бы хотел. Есть ли способ превратить все между каждым апострофом (например, ‘-1,38,31857’ в одну строку и ‘-1,40,39304’) в другую строку и скомпилировать все это в массив?
'-1,38,31857',
'-1,40,39304',
'1582871,64,445338',
'-1,37,29632',
'-1,1,82',
'-1,18,3613',
'-1,6,544',
'-1,23,7025',
'-1,34,20775',
'1979527,23,6361',
'-1,10,1330',
'-1,17,3300',
'-1,11,1426',
'-1,8,853',
'-1,24,7087',
'-1,1,0',
'-1,1,0',
'198113,79,1927770',
'-1,1,0',
'1763114,1,42',
'1803615,4,357',
'-1,1,0',
'-1,1,0',
'-1,-1',
'-1,-1',
'-1,-1',
'-1,-1',
'-1,-1',
'-1,-1',
'-1,-1',
'-1,-1',
'-1,-1',
'-1,-1',
'-1,-1',
'-1,-1',
'-1,-1',
'-1,-1',
'-1,-1',
'-1,-1',
'-1,-1',
'-1,-1',
'-1,-1',
'-1,-1',
'-1,-1',
'-1,-1',
'-1,-1',
'-1,-1',
'-1,-1',
'-1,-1',
'-1,-1',
'-1,-1',
'-1,-1',
'-1,-1',
'-1,-1',
'-1,-1',
'-1,-1',
'-1,-1',
'-1,-1',
'-1,-1',
'-1,-1',
'-1,-1',
'-1,-1',
'-1,-1',
'-1,-1',
'-1,-1',
'-1,-1',
'-1,-1',
'-1,-1',
'-1,-1',
'-1,-1',
'-1,-1',
'-1,-1',
'-1,-1',
'-1,-1',
'-1,-1',
'-1,-1',
'-1,-1',
'-1,-1',
'-1,-1'] ```
Комментарии:
1. Каков источник этой строки? похоже, вы просто разделили содержимое некоторого текстового файла по строкам в список. В любом случае вы должны просто проанализировать это с помощью встроенного
csv
модуля.2. Кроме того, когда вы говорите «массив», вы имеете в виду список? Подойдет ли просто итератор? или вы имеете в виду массив numpy?
3. Источник строки взят из hiscores игры под названием old school runescape, которая выводится в виде строки, и для обработки требуется преобразование в правильный массив 🙂 Пример ссылки, которая выдает набор данных: services.runescape.com/m=hiscore_oldschool /…
Ответ №1:
Используя понимание списка и split()
:
>>> [[int(n) for n in row.split(",")] for row in strings]
[[-1, 38, 31857], [-1, 40, 39304], [1582871, 64, 445338], [-1, 37, 29632], [-1, 1, 82], [-1, 18, 3613], [-1, 6, 544], [-1, 23, 7025], [-1, 34, 20775], [1979527, 23, 6361], [-1, 10, 1330], [-1, 17, 3300], [-1, 11, 1426], [-1, 8, 853], [-1, 24, 7087], [-1, 1, 0], [-1, 1, 0], [198113, 79, 1927770], [-1, 1, 0], [1763114, 1, 42], [1803615, 4, 357], [-1, 1, 0], [-1, 1, 0], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1]]
Другой вариант — использовать csv
модуль:
>>> import csv
>>> list(csv.reader(strings, quoting=csv.QUOTE_NONNUMERIC))
[[-1.0, 38.0, 31857.0], [-1.0, 40.0, 39304.0], [1582871.0, 64.0, 445338.0], [-1.0, 37.0, 29632.0], [-1.0, 1.0, 82.0], [-1.0, 18.0, 3613.0], [-1.0, 6.0, 544.0], [-1.0, 23.0, 7025.0], [-1.0, 34.0, 20775.0], [1979527.0, 23.0, 6361.0], [-1.0, 10.0, 1330.0], [-1.0, 17.0, 3300.0], [-1.0, 11.0, 1426.0], [-1.0, 8.0, 853.0], [-1.0, 24.0, 7087.0], [-1.0, 1.0, 0.0], [-1.0, 1.0, 0.0], [198113.0, 79.0, 1927770.0], [-1.0, 1.0, 0.0], [1763114.0, 1.0, 42.0], [1803615.0, 4.0, 357.0], [-1.0, 1.0, 0.0], [-1.0, 1.0, 0.0], [-1.0, -1.0], [-1.0, -1.0], [-1.0, -1.0], [-1.0, -1.0], [-1.0, -1.0], [-1.0, -1.0], [-1.0, -1.0], [-1.0, -1.0], [-1.0, -1.0], [-1.0, -1.0], [-1.0, -1.0], [-1.0, -1.0], [-1.0, -1.0], [-1.0, -1.0], [-1.0, -1.0], [-1.0, -1.0], [-1.0, -1.0], [-1.0, -1.0], [-1.0, -1.0], [-1.0, -1.0], [-1.0, -1.0], [-1.0, -1.0], [-1.0, -1.0], [-1.0, -1.0], [-1.0, -1.0], [-1.0, -1.0], [-1.0, -1.0], [-1.0, -1.0], [-1.0, -1.0], [-1.0, -1.0], [-1.0, -1.0], [-1.0, -1.0], [-1.0, -1.0], [-1.0, -1.0], [-1.0, -1.0], [-1.0, -1.0], [-1.0, -1.0], [-1.0, -1.0], [-1.0, -1.0], [-1.0, -1.0], [-1.0, -1.0], [-1.0, -1.0], [-1.0, -1.0], [-1.0, -1.0], [-1.0, -1.0], [-1.0, -1.0], [-1.0, -1.0], [-1.0, -1.0], [-1.0, -1.0], [-1.0, -1.0], [-1.0, -1.0], [-1.0, -1.0], [-1.0, -1.0], [-1.0, -1.0], [-1.0, -1.0], [-1.0, -1.0]]
Комментарии:
1. аргумент в кавычках является надежным