Python 如何翻译列表介绍词典的列表?

Python 如何翻译列表介绍词典的列表?,python,Python,所以我需要在字典中创建一些字典在字典中。。。我真的需要你帮我写。我想弄明白,但我没能通过第三本字典 因此,我有一个包含我的数据的列表,看起来是这样的: my_data=[['Floor_one','Working','Dogs','May','2000'], [“一楼”、“失业”、“猫”、“六月”、“3000”], ['Floor_two','Working','Dogs','May','2100'], [“二楼”、“失业”、“猫”、“六月”、“2200”], [‘三楼’、‘工作’、‘狗’、‘五

所以我需要在字典中创建一些字典在字典中。。。我真的需要你帮我写。我想弄明白,但我没能通过第三本字典

因此,我有一个包含我的数据的列表,看起来是这样的:

my_data=[['Floor_one','Working','Dogs','May','2000'],
[“一楼”、“失业”、“猫”、“六月”、“3000”],
['Floor_two','Working','Dogs','May','2100'],
[“二楼”、“失业”、“猫”、“六月”、“2200”],
[‘三楼’、‘工作’、‘狗’、‘五月’、‘2300’],
['Floor_three','Working','Cats','June','4500']
我需要从这个列表中创建一个字典,看起来是这样的:

my_dict={楼层:{月份:{工作:{狗:200,猫:300},失业:{狗:200,猫:300}
所以在我的情况下应该是这样的:

my_dict={Floor_one:
{五月:{工作:{狗:200,猫:300},失业:{狗:200,猫:300},
六月:{工作:{狗:200,猫:300},失业:{狗:200,猫:300}
{二楼:
{五月:{工作:{狗:800,猫:400},失业:{狗:1000,猫:3300},
六月:{工作:{狗:700,猫:500},失业:{狗:2100,猫:2300}
当然,我的列表要大得多,比如300行,我有更多的楼层和月份。 我当前的代码如下所示:

def my_函数(我们的_数据)#我们的数据是我的列表列表
对于我们的_数据[1:]中的行:#忽略第一行,因为它是列的名称
如果第[0]行不在嵌套目录中:
嵌套的dict[行[0]]=0
返回嵌套命令
它创造了我的楼层,但我不知道如何从这里开始。
有人能帮我吗?:)我这样做是为了找出我在X件东西上花了多少钱,并附上具体的礼物。例如,我要求(一楼,五月,工作,猫)如果我是你的话,我会重新考虑我的数据结构。它相当复杂,你应该试着让它更容易使用。也许首先从一个
dict
开始。无论如何,这可能会帮助你:

In[15]:d=[“一楼”、“工作”、“狗”、“五月”、“2000年”、“一楼”、“失业”、“猫”、“六月”、“3000年”、“一楼”_
…:两个“,”工作“,”狗“,”五月“,”2100年]]
...:
…:导入集合
...:
…:new_d=collections.defaultdict(dict)
...:
…:对于d中的l:
…:内部\u内部\u局部\u d={}
…:内部的内部的局部的[l[2]=l[4]
…:内部\u局部\u d={}
…:inner\u local\u d[l[1]]=inner\u inner\u local\u d
…:new_d[l[0]][l[3]]=内部_local_d
...:
In[16]:new\u d
出[16]:
默认dict(dict,
{'floor_one':{'may':{'working':{'dogs':2000},
‘六月’:{‘失业’:{‘猫’:3000}},
‘二楼’:{'may':{'working':{'dogs':2100}})

我建议保持数据原样,并运行查询检查某些属性的存在

my_data = [
    ['Floor_one', 'Working', 'Dogs', 'May', 2000],
['Floor_one', 'Jobless', 'Cats', 'June', 3000], 
['Floor_two', 'Working', 'Dogs', 'May', 2100],
['Floor_two', 'Jobless', 'Cats', 'June', 2200],
['Floor_three', 'Working', 'Dogs', 'May', 2300],
['Floor_three', 'Working', 'Cats', 'June', 4500]
]

def query_volumes (query, data):
    for q in query:
        data = [d for d in data if q in d]
    volumes = [d[-1] for d in data]
    return sum(volumes)

query1 = ['Floor_three', 'June', 'Working', 'Cats']
query2 = ['Cats']

query_volumes(query1, my_data)
# RETURNS 4500
query_volumes(query2, my_data)
# RETURNS 9700

my_dict
my_data
的数据不匹配,也是结果输出,第一个或第二个字符串。这些字符串是吗?['Floor_one','Working','Dogs','May',2000],是的,我的列表是字符串。我的badKumar,我想我不明白这一点;我的列表有所有属性Floor、W/J、Month、D/C、number。在我的字典中可以找到相同的属性,它们只是顺序不同。因为我无法更改我的excel文件。这是一个大问题吗?我的输出最终只是我的字典的一部分。因此,内部字典将有钥匙
Cats
Dogs
,我怎么知道其他嵌套钥匙是
May
Working
,或
Working
May
?在你的问题中,你有两个
my_dict
的例子,哪一个是你想要的结果字典?它非常接近我需要的东西,只有男人问题是我需要一个月的时间:工作,失业,一本字典而不是二本字典:它应该像{'floor_one':{'may':{'working':{'dogs':2000,cats:1000},'jobless':{'dogs':1500,'cats':2500},'june':{'working':{'dogs':2000,cats:1000},'jobless':{'cats':3000}无论如何,谢谢你,我的人会尝试根据我的需要修复它;)这只是一个excel格式,我无法100%更改,所以我正在尝试为自己找到一个简单的方法来获得我需要的数据。更新我的答案以匹配你确切的期望输出。嘿,伙计,现在它非常接近,只是没有翻译工作/失业和失业的第二部分狗/猫。如果你加上我在你的“d”中发布的所有6个案例我想你会明白我的意思的。现在每个月只有工作或失业,每个W/J只有狗或猫。这两个类别都应该有。给我一个你想测试的输入的真实例子。在我看来,每个月只有狗/猫,而不是两者。谢谢你,我会用你的方式尝试,并检查它是否有效就像我需要的那样。