Уведомления

Группа в Telegram: @pythonsu

#1 Май 31, 2019 09:59:32

GEvgeniy
Зарегистрирован: 2019-05-31
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

Сортировка таблицы после итерации

Здравствуйте! Новичок в изучении Python. Требуется Ваша квалификационная помощь, консультация.
Содержание задачи.
Переменные A, B, C, D, E заданы черег границы от …до, шаг.
F - функция от A, B, C, D, E, которую необходимо определить через формулу. Значения F определены перебором (for).
После составления таблицы (столбцы A,B,C,D,E,F) сортировка по столбцу F не представляется возможным. Необходимо соединить полученные строки в одну таблицу / массив, который далее сортировать по любому столбцу или существуют другие способы.

Код:
print ('|{: ^7}|{: ^7}|{: ^7}|{: ^7}|{: ^7}|{: ^7}|'.format(“A”, “B”, “C”, “D”, “E”, “F”))
import numpy as np
for A in np.arange (0.3, 1.01, 0.5):
for B in np.arange (1, 8.01, 4):
for C in np.arange (1, 23.01, 14):
for D in np.arange (1, 8.01, 5):
for E in np.arange (1, 1.5, 1):
F(A*B*C)/(D*E))
if F <= 10:
F=10
elif 10 < F:
F = ((A*B*C)/(D*E))
print (('|{: ^7.1f}|{: ^7.1f}|{: ^7.1f}|{: ^7.1f}|{: ^7.1f}|{: ^7.1f}|'.format(A, B, C, D, E, F)))
Печать в таком формате, но эти значения невозможно сортировать и невозможно строить единый график (строятся отдельные точки для каждого расчета).
| A | B | C | D | E | F |
| 0.3 | 1.0 | 1.0 | 1.0 | 1.0 | 10.0 |
| 0.3 | 1.0 | 1.0 | 6.0 | 1.0 | 10.0 |
| 0.3 | 1.0 | 15.0 | 1.0 | 1.0 | 10.0 |
| 0.3 | 1.0 | 15.0 | 6.0 | 1.0 | 10.0 |
| 0.3 | 5.0 | 1.0 | 1.0 | 1.0 | 10.0 |
| 0.3 | 5.0 | 1.0 | 6.0 | 1.0 | 10.0 |
| 0.3 | 5.0 | 15.0 | 1.0 | 1.0 | 22.5 |
| 0.3 | 5.0 | 15.0 | 6.0 | 1.0 | 10.0 |
| 0.8 | 1.0 | 1.0 | 1.0 | 1.0 | 10.0 |
| 0.8 | 1.0 | 1.0 | 6.0 | 1.0 | 10.0 |
| 0.8 | 1.0 | 15.0 | 1.0 | 1.0 | 12.0 |
| 0.8 | 1.0 | 15.0 | 6.0 | 1.0 | 10.0 |
| 0.8 | 5.0 | 1.0 | 1.0 | 1.0 | 10.0 |
| 0.8 | 5.0 | 1.0 | 6.0 | 1.0 | 10.0 |
| 0.8 | 5.0 | 15.0 | 1.0 | 1.0 | 60.0 |
| 0.8 | 5.0 | 15.0 | 6.0 | 1.0 | 10.0 |
Заранее спасибо за ответ и любую помощь (подсказку)!

Офлайн

#2 Май 31, 2019 10:06:14

Egorro13
Зарегистрирован: 2019-04-16
Сообщения: 105
Репутация: +  5  -
Профиль  

Сортировка таблицы после итерации

Создать список, в цикле в него добавлять отдельными списками нужные значения (A, B, C, D, E, F), а уже дальше этот список сортировать по нужным критериям и выводить на экран?

Отредактировано Egorro13 (Май 31, 2019 10:06:29)

Офлайн

#3 Май 31, 2019 10:12:47

GEvgeniy
Зарегистрирован: 2019-05-31
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

Сортировка таблицы после итерации

По условию изначально заданы A…E (каждый из которых свои границы имеет). Необходимо посчитать F. Результат представить в виде таблицы, которую можно сортировать по любому столбцу (A…F).

Офлайн

#4 Май 31, 2019 10:20:10

Egorro13
Зарегистрирован: 2019-04-16
Сообщения: 105
Репутация: +  5  -
Профиль  

Сортировка таблицы после итерации

GEvgeniy
По условию изначально заданы A…E (каждый из которых свои границы имеет). Необходимо посчитать F. Результат представить в виде таблицы, которую можно сортировать по любому столбцу (A…F).
Бегло переделал код - показать, о чем речь: сортировка сделана по F по возрастанию, можно аналогично написать для любого другого столбца:
import numpy as np

 import numpy as np
lst = list()
for A in np.arange(0.3, 1.01, 0.5):
    for B in np.arange(1, 8.01, 4):
        for C in np.arange(1, 23.01, 14):
            for D in np.arange(1, 8.01, 5):
                for E in np.arange(1, 1.5, 1):
                    F = ((A * B * C) / (D * E))
                    if F <= 10:
                        F = 10
                    elif 10 < F:
                        F = ((A * B * C) / (D * E))
                    lst.append([A, B, C, D, E, F])
for l in sorted(lst, key=lambda v: v[5]):
    A, B, C, D, E, F = l[0], l[1], l[2], l[3], l[4], l[5]
    print((
        '|{: ^7.1f}|{: ^7.1f}|{: ^7.1f}|{: ^7.1f}|{: ^7.1f}|{: ^7.1f}|'.format(
            A, B, C, D, E, F)))
На будущее, используй оформление Python для кода (скрин), чтобы и читать можно было, и скопировать без лишних телодвижений

Отредактировано Egorro13 (Май 31, 2019 10:20:55)

Прикреплённый файлы:
attachment firefox_2019-05-31_10-19-49.jpg (242,9 KБ)

Офлайн

#5 Май 31, 2019 10:26:45

GEvgeniy
Зарегистрирован: 2019-05-31
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

Сортировка таблицы после итерации

Спасибо за помощь! Буду разбираться!

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version