计算列表列表中的不同值 - Python

Mai*_* S. 5 python list count python-2.7

我刚刚将值从 .csv 文件导入到列表列表中,现在我需要知道有多少不同的用户。文件本身如下所示:

[['123', 'apple'], ['123', 'banana'], ['345', 'apple'], ['567', 'berry'], ['567', 'banana']]
Run Code Online (Sandbox Code Playgroud)

基本上,我需要知道有多少不同的用户(每个子列表中的第一个值是用户 ID)(3在这种情况下,经过一些 Excel 过滤后超过 6,000),以及食物本身的频率是多少:{'apple': 2, 'banana': 2, 'berry': 1}

这是我尝试用于不同值计数的代码(使用 Python 2.7):

import csv
with open('food.csv', 'rb') as food:
    next(food)
    for line in food:
        csv_food = csv.reader(food)
        result_list = list(csv_follows)

result_distinct = list(x for l in result_list for x in l)

print len(result_distinct)
Run Code Online (Sandbox Code Playgroud)

blc*_*ird 3

您可以使用[x[0] for x in result_list]来获取所有 id 的列表。然后您创建一个set,即该列表中所有唯一项目的全部列表。该集合的长度将为您提供唯一用户的数量。

len(set([x[0] for x in result_list]))
Run Code Online (Sandbox Code Playgroud)