Python 使用列表和字典的所需输出

Python 使用列表和字典的所需输出,python,list,dictionary,count,Python,List,Dictionary,Count,我有一份清单和一本字典,内容如下: lista = [ ['Pasta', 'is', 'bad'], ['Pasta', 'is', 'good', 'and','is','expensive'] ] dica = { 'Pasta': 0, 'is': 0, 'bad': 0, 'good': 0, 'and': 0, 'expensive': 0 } 我想获取列表中的每个子列表,并将字典应用于它,创建一个字典列表

我有一份清单和一本字典,内容如下:

lista = [
    ['Pasta', 'is', 'bad'],
    ['Pasta', 'is', 'good', 'and','is','expensive']
]

dica = {
    'Pasta': 0,
     'is': 0,
     'bad': 0,
     'good': 0,
     'and': 0,
     'expensive': 0
}
我想获取列表中的每个子列表,并将字典应用于它,创建一个字典列表-每个列表一个字典-其中每个键的值是该键在子列表中出现的次数

fin_dict = {
    {
        'Pasta': 1,
        'is': 1,
        'bad': 1,
        'good': 0,
        'and': 0,
        'expensive': 0
    },
    {
        'Pasta': 1,
        'is': 2,
        'bad': 0,
        'good': 1,
        'and': 1,
        'expensive': 1
    }
}

我在下面的脚本中解释了细节:

lista=[['意大利面'、'是'、'坏']、['意大利面'、'是'、'好'、'和'、'是'、'贵']]
dica={'意大利面:0,'is':0,'bad':0,'good':0,'and':0,'priced':0}
#创建一个空数组来存储字典。
myList=[]
对于范围内的i(len(lista)):
#在每次迭代中附加'dica',以获得对它的引用。
myList.append(dica)
#遍历'dica'键。
对于dica中的密钥:
#遍历lista中的列表元素。
对于lista[i]中的listElem:
#检查'key'是否等于列表中的值,
#换句话说,统计列表元素的出现次数。
如果键==列表项:
myList[i][key]+=1
打印(myList)
注意:据我所知,您请求的输出类型是不可能的,我还认为您无意使用
字典
,因此我将其输出到
列表中

输出:

[{'意大利面食:2'is':3'bad':1'good':1'和:'1'昂贵:1},{'意大利面食:2'is':3'bad':1'good':1'和:'1'昂贵:1}]
试试这个:

def count_items(dic, lst):
    counts = dict(dic)
    for x in lst:
        counts[x] += 1
    return counts

lista=[['Pasta', 'is', 'bad'],['Pasta', 'is', 'good', 'and','is','expensive']]

dica={'Pasta': 0,'is': 0,'bad': 0,'good': 0,'and': 0,'expensive': 0}

print([count_items(dica, lista[0]), count_items(dica, lista[1])])

# prints [{'Pasta': 1, 'is': 1, 'bad': 1, 'good': 0, 'and': 0, 'expensive': 0}, {'Pasta': 1, 'is': 2, 'bad': 0, 'good': 1, 'and': 1, 'expensive': 1}]

(此解决方案假设fin_dict是一个列表,输入列表中的所有项目都在字典中。)

您上面写的内容将生成一组
dict
。这就是你想做的吗?输出无效PythonYeah它正在创建一组dict,我不介意它是否有帮助我相应地更改了代码:def sub_list(a):x=dict(dica)for i in a:x[i]+=1 return x fin_list=[sub_list(i)for i in lista]print(fin_list)