Вам нужно передать указатель на указатель, если вы хотите это сделать.
void barPush (список BarList **, Bar * bar) {if (list == NULL) вернуть; // нужно передать указатель на указатель на ваш список. // если нет добавления для добавления, то мы выполняем if (bar == NULL) return; // выделяем пространство для нового узла BarList * newNode = malloc (sizeof (BarList)); // присваиваем правильные значения newNode- & gt; val = bar; newNode- & gt; nextBar = * list; // и устанавливаем содержимое указателя на указатель на заголовок списка // (то есть: указатель на голову списка) на новый узел. * list = newNode; }
Затем используйте его следующим образом:
BarList * l; l = EMPTY_LIST; barPush (& амп; л, & амп; b1); // b1 и b2 - это только bar barPush (& amp; l, & amp; b2);
Джонатан Леффлер предложил вернуть нового руководителя списка в комментарии:
BarList * barPush (список BarList *, Bar * bar) {// если нет добавления для добавления, то мы закончили - возвращаем немодифицированный список. if (bar == NULL) возвратный список; // выделяем пространство для нового узла BarList * newNode = malloc (sizeof (BarList)); // присваиваем правильные значения newNode- & gt; val = bar; newNode- & gt; nextBar = list; // возвращаем новый заголовок списка. return newNode; }
Использование становится:
BarList * l; l = EMPTY_LIST; l = barPush (l, & amp; b1); // b1 и b2 - это только бары l = barPush (l, & amp; b2);
Простой способ распечатать отсортированное содержимое словаря в Python 3:
& gt; gt; & gt; gt; dict_example = {'c': 1, 'b': 2, 'a': 3} & gt; & gt; & gt; & gt; & gt; & gt; (key, value)) ... a: 3 b: 2 c: 1
Выражение dict_example.items ()
возвращает кортежи, которые затем могут быть отсортированы по sorted ()
:
& GT; & GT; & GT; dict_example.items () dict_items ([('c', 1), ('b', 2), ('a', 3)]) gt; gt; gt; gt; ('b', 2), ('c', 1)]
Ниже приведен пример для симпатичного напечатать отсортированное содержимое значений словаря Python.
для ключа, значение в сортировке (dict_example.items (), key = lambda d_values: d_values [1]): print ("{}: {} ". format (ключ, значение))
У меня была та же проблема, что и у вас. Я использовал цикл for с сортированной функцией, проходящей в словаре следующим образом:
для элемента в отсортированном (mydict): print (item)
На самом деле pprint модуль Python pprint
уже сортирует словари по ключу. В версиях, предшествующих Python 2.5, сортировка запускалась только в словарях, чье довольно напечатанное представление охватывало несколько строк, но в версиях 2.5.X и 2.6.X, были отсортированы все словари .
Как правило, если вы пишете структуры данных в файл и хотите, чтобы они были доступны для чтения и записи, вам может потребоваться использовать альтернативный формат, такой как YAML или JSON. Если ваши пользователи сами являются программистами, если они поддерживают конфигурацию или состояние приложения, сбрасываемые с помощью pprint
и загруженные через eval
, могут быть разочаровывающей и подверженной ошибкам задачей.
ast.literal_eval ("{'a': 0, 'b': 1, 2: 'c'}")
- & gt; {2: 'c', 'a': 0, 'b': 1}
, поэтому нет необходимости в нечестивом eval
.
– jfs
26 September 2009 в 05:09
Я написал следующую функцию для печати dicts, lists и tuples в более читаемом формате:
def printplus (obj): "" "Довольно печатает переданный объект." "" # Dict if isinstance (obj, dict): для k, v в sorted (obj.items ()): print u '{0}: {1}'. Format (k, v) # List или tuple elif isinstance (obj, list) или isinstance (obj, tuple): для x в obj: print x # Другие другие: print obj
Пример использования в iPython:
& GT; & GT; & GT; dict_example = {'c': 1, 'b': 2, 'a': 3} & gt; & gt; & gt; & gt; & gt; & gt; printplus (dict_example) a: 3 b: 2 c: 1 & gt; gt; tuple_example = ((1, 2), (3, 4), (5, 6), (7, 8)) & gt; & gt; & gt; & gt; printplus (tuple_example) (1, 2) (3, 4) (5, 6) (7, 8)
Другая альтернатива:
& gt; & gt; & gt; & gt; & gt; mydict = {'a': 1, 'b': 2, 'c': 3} & gt; & gt; & gt; & gt; import json
Затем с python2:
& gt; & gt; & gt; & gt; print json.dumps (mydict, indent = 4, sort_keys = True) # python 2 {"a": 1, "b": 2, "c": 3}
или с python 3:
& gt; & gt; & gt; & gt; & gt; print (json.dumps (mydict, indent = 4, sort_keys = True)) # python 3 {"a": 1, "b": 2, "c": 3}
для ключа, значение в sorted (dict_example.items (), key = lambda d_items: d_items [1]): print (& quot; {}: {} & quot ;.format (ключ, значение))
– Scott Skiles 19 June 2017 в 15:16