Моя задача - создать функцию, которая получает словарь и переменную порядка, если переменная порядка - «Значение, asc», я должен распечатать словарь в хорошем формате, где он уже отсортирован. Я мог бы получить имена элементов и значений, и я мог бы отсортировать значения, но не имена. Затем я попытался распечатать имя только в соответствии с заданным значением, но оно возвращает мне None. Если бы вы могли проверить мой код и порекомендовать мне что-нибудь, пожалуйста, дайте мне знать!
def print_table(inventory, order=None):
if order == "count,asc":
itemName = []
itemValue = []
for value in inventory.values(): # all the values to a list
itemValue.append(value)
for key in inventory.keys(): #all the keys to a list
itemName.append(key)
itemValue =sorted(itemValue)
maxLen = 0
i = 0
while i != len(itemName):
if maxLen < len(itemName[i]): #determine the longest name
maxLen = len(itemName[i])
i += 1
correctedItemName = []
for i in range(0, len(itemName)): #increase all names to be equalent lenght
short = maxLen - len(itemName[i])
string_length = len(itemName[i]) + short
correctedItemName.append(itemName[i].ljust(string_length))
print("-----------------") #print the table already sorted
for i in range(len(itemValue)):
print("{} {} {}".format(inventory.get(itemValue[i]), "| ", itemValue[i]))
print("-----------------")