Я не смог найти этот вопрос в нескольких поисках. Рассмотрим следующую MATLAB-структуру:Выход терминала MATLAB в Python
>> s = struct('field_a', 1:10, 'field_b', 1:1000);
>> disp(s)
s =
field_a: [1 2 3 4 5 6 7 8 9 10]
field_b: [1x1000 double]
В словаре питона (игнорировать +1 различия), это может быть:
>>> d = {'field_a': np.arange(10), 'field_b': np.arange(1000)}
>>> print(d)
<<floods terminal with output>>
Можно ли получить питона напечатать что-то вроде:
>>> print(d)
{'field_b': array([1, 2, ..., 998, 999]), 'field_a': array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])}
Я бы не хотел, чтобы это ограничивалось численными типами данных, но любой элемент с несколькими элементами, который может стать громоздким. И, очевидно, я хотел бы в любое время проверить все значения, если это необходимо.
Не уверен, нужно ли перегружать 'print', но я предполагаю, что можно создать' myprint' и легко поймать некоторые ситуации, в которых вы хотите отклоняться от того, как ведет себя печать (и в противном случае просто вызывать печать). –
['pprint'] (https://docs.python.org/3/library/pprint.html) может сделать что-то подобное, и, конечно же, с помощью среды, подобной MATLAB, такой как' ipython', может быть больше на ваш вкус, чем простая интерактивная оболочка python. –