Сортировка по словарю, а затем печать в отсортированном порядке - PullRequest
0 голосов
/ 02 ноября 2019

Моя задача - создать функцию, которая получает словарь и переменную порядка, если переменная порядка - «Значение, 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("-----------------")

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...