Я пытаюсь развернуть мою голову вокруг Джулии, исходящей от Python. В настоящее время я работаю над некоторыми проблемами Project Euler, которые я решил использовать Python в Julia, чтобы лучше понять язык. Одна вещь, которую я делаю много (в Project Euler и в реальной жизни), заключается в анализе большого многострочного объекта данных в массиве. Например, если у меня есть данныеПроведите многострочную строку в массив
data = """1 2 3 4
5 6 7 8
9 0 1 2"""
В Python я мог бы сделать
def parse(input):
output = []
for line in input.splitlines():
output.append(map(int,line.split()))
return np.array(output)
Вот что я до сих пор в Джулии:
function parse(input)
nrow = ncol = 0
# Count first
for row=split(input,'\n')
nrow += 1
ncol = max(ncol,length(split(row)))
end
output = zeros(Int64,(nrow,ncol))
for (i,row) in enumerate(split(input,'\n'))
for (j,word) in enumerate(split(row))
output[i,j] = int(word)
end
end
return output
end
Что версия Julia из «вещий " называется? Как бы то ни было, я не думаю, что я это делаю. Я уверен, что есть способ: (1) не проходить через данные дважды, (2) не обязательно быть настолько конкретным в распределении массива. Я пробовал hcat/vcat немного, без везения.
Я бы приветствовал предложения по его решению. Мне также интересны ссылки на правильный стиль Джулии (julia-onic?) И общие практики использования языка. Благодаря!
Отлично! Благодаря! – Rick