计算python列表列表列中特定值的出现次数

时间:2021-03-19 22:07:36

标签: python list list-comprehension

我有一个列表如下:

[[1,0,1,3],
 [2,0,1,3],
 [2,3,0,2]]

我想将每个 3 中出现 3 的次数作为一个列表: ((0,0),(1,1),(2,0),(3,2))

最好的方法是什么?我需要转置然后使用列表理解吗?

4 个答案:

答案 0 :(得分:1)

你不需要转置,只需保留一个带计数器的辅助字典:

m = [[1, 0, 1, 3], [2, 0, 1, 3], [2, 3, 0, 2]]

counters = {}

for j in range(len(m)):
    for i in range(len(m[j])):
        counters.setdefault(i, 0)
        counters[i] += m[j][i] == 3

print(tuple(counters.items()))

打印:

((0, 0), (1, 1), (2, 0), (3, 2))

答案 1 :(得分:1)

使用数据帧

import numpy as np
import pandas as pd


df = pd.DataFrame([[1,0,1,3],
 [2,0,1,3],
 [2,3,0,2]])

print((df==3).sum().sum())
3

有 3 个元素等于 3。

答案 2 :(得分:1)

花了一些时间。我对理解有点生疏。感谢您的出色练习。

{% if "update" in request.get_full_path %}
 <form action="{% url 'account-update' account.id %}" method="PUT">
{% else %}
 <form action="{% url 'account-create' account.id %}" method="POST" enctype="multipart/form-data">

答案 3 :(得分:-2)

这行得通吗?

Set
相关问题