如何从用户的输入中按顺序(每个库存)添加一组值,例如{fruit:{1,2,3,4},{veggies:{5,6,7,8}}

到目前为止,我没有尝试过任何方法。

这是我的代码:

def Create_Inventory():

    clear()
    inventory_dictionary = {}

    count_inventory = int(input("Enter the number of Inventories: "))

    for num_inv in range(count_inventory):

        add_inventory = str(input("Enter Inventory #%d: " % (num_inv + 1)))
        inventory_dictionary[add_inventory] = set()

    for find_key in inventory_dictionary:
        count_item = int(input("\nHow many items in %s inventory: " % find_key))
        for num_item in range(count_item):
            #add_item = input("Enter item #%d: " % (num_item + 1))
            #inventory_dictionary[find_key].add(add_item)
            add_item = set(input("Enter item #%d: " % (num_item + 1)))
            inventory_dictionary[find_key].update(add_item)


我的完整代码:
https://pastebin.com/gu5DJX5K

最佳答案

Sets are unordered collections.您想要的是不可能的。考虑以下替代方案:


list,已订购,但允许重复。
在Python 3.6及更高版本中,dict.keys字典按插入顺序排列。
3.6之前的Python版本中的OrderedDict.keys
创建一个自定义类,例如this recipe
使用第三方库,例如ordered-set


另请参阅:Does Python have an ordered set?

10-06 05:22
查看更多