比较字典中的列表长度

时间:2014-11-28 18:57:53

标签: python list dictionary

我问你,因为我不知道在哪里转。经过2个小时的搜索,我什么也没想到。

所以基本上我正在编写接收不同变量的程序,然后将单位附加到变量。

现在一切都存储在字典中,其中包含键的变量和值的单位。所以我的问题是如何将字典中的第一个列表与其中的其他列表进行比较?

我需要这些,因为单位的长度必须相同......

这是我的代码:

data = {}
def test():
    variable = input("Please enter the name of variable: ")
    data[variable]=[]
    while True:
        unit = input("Enter unit: ")
        if unit == "":
            break
        data[variable].append(unit)
        a = len(data[variable])
    while True:
        start_again = input("Add another value to dictionary?(y/n: ")
        start_again = start_again.lower()
        if start_again == "d":
            test()
        elif start_again == "n":
            break
    print(data)
test()

我是初学者,所以不要太难我。

我期待着答案和建议。

1 个答案:

答案 0 :(得分:0)

你可以试试这个:

data = {}
def test():
    while True:
        variable = input("Please enter the name of variable: ")
        new_list = []
        while True:
            unit = input("Enter unit: ")
            if unit == "":break
            new_list.append(unit)

下面您可以将要添加到字典中的列表与字典中已有的列表进行比较:

        if data: # when the dictionary is not empty
            list_length = len(new_list)
            other_lengths = [len(item) for item in data.items()]

other_length变量创建字典中所有当前列表长度的列表。如果您想要或只是将新列表和变量添加到字典中,您可以在此处进行某种比较。由你决定。

        else: # add new list and variable to empty dictionary
                data[variable]= new_list

        start_again = input("Add value to dictionary?(y/n): ").lower()
        if start_again== 'y':continue
        else:
            return (data) # returns dictionary

return语句返回字典,因此您可以将其分配给变量,如下所示:

new_data = test()
new_data # calling this would return your dictionary