Я пытаюсь создать сценарий питона, который делает следующее:Как группировать, сортировать, подсчитать количество записей и вывода результатов
Table (DBF или CSV-я мог бы создать любой) всегда будет иметь только 4 записей. Столбец 2 (Let) всегда будет упорядочен a, b, c, d. Столбец 1 (Num) всегда будет иметь номера от 0 до 10, но частота и порядок будут различаться. Вывод должен быть отсортирован и сгруппирован по Num с наименьшим номером, выведенным первым. Если число в первом столбце появляется один раз, выводится только соответствующее письмо. Если число появляется дважды (т.е. две строки имеют одинаковое число), каждая соответствующая буква выводится с «и» между ними. Если число отображается более двух раз, каждая буква выводится с запятой между ними и «и» перед последней буквой. Каждая отображаемая группа букв получает свою собственную строку вывода.
основном ищет сортировать, группу и выход 1 из 4 вариантов:
«Нет данных»
1 письмо само по себе
2 буквы отделены друг от друга «и»
3 букв, разделенных запятыми и "и" перед последней буквой.
Ниже представлены различные версии таблицы soils_no.dbf и ее требуемые выходы в зависимости от ввода.
Num .......... Пусть
0 ............... а
0 ............ ... b
0 ............... c
0 ............... d
print "Нет данных"
Кол-во .......... Разрешить
8 ............... a
8 ............. ..b
2 ............... c
8 ............... d
печати с
печати а, б и д
Num .......... Пусть
4 ...............
1 ............... b
7 ............... c
3 ........... .... д
печати б
печать д
Отпечатайте
печати с
Num ....... ... Пусть
3 ............... a
3 ............... b
10 ..... ........ с
1 ............... д
печати д
печати а и б
печати с
Num ... ....... Пусть
10 ............... a
10 ............... b
10. ............ c
10 ...............d
print a, b, c и d
Я знаю, как прокручивать и вводить запятые и «и», но я не знаю, как группировать и сортировать. Выполнение этого с помощью python 2.7.
BTW, я пытаюсь изучить python, поэтому, пожалуйста, объясните, что означает код. Чем больше я узнаю, тем меньше полагаюсь на доброту незнакомцев.
Cagillion благодарит заранее.
Мое выборочное данные могут быть немного обманчивыми. Zeroes может быть разбросано по любой из вышеперечисленных таблиц, и его значения возвращаются как любые другие значения, за исключением случаев, когда у вас есть все 4 записи как ноль, поэтому я не хочу вырезать нули, просто распечатайте отдельный ответ, если все записи равны нулю. Не уверен, что это изменит код. Кроме того, имеет значение, является ли таблица dbf или csv для работы этого кода? – user12059
Кроме того, иногда в моей попытке для краткости (кто хочет прочитать роман), я могу опустить важные детали (хотя они не кажутся важными в то время, поскольку я полагаю, что могу изменить текст). Снимите четвертый стол. Результат на самом деле будет больше похож: «Буква d имеет 1 заказ. Буквы a и b имеют по 3 ордера каждая. Буква c имеет 10 заказов». В таблице 1 будет указано что-то вроде: «На этой неделе нет заказов». – user12059
Я изменил код так, чтобы он обрабатывал нули по мере запроса. Я также добавил комментарии, чтобы помочь вам разобраться. Что касается изменений выходного текста, вы должны отредактировать код и сделать вывод так, как вы хотите. Я уверен, что вы можете выяснить, как внести необходимые изменения, и я отвечу на вопросы. – steveha