我有一个列表如下:
[[1,0,1,3],
[2,0,1,3],
[2,3,0,2]]
我想将每个 3 中出现 3 的次数作为一个列表: ((0,0),(1,1),(2,0),(3,2))
最好的方法是什么?我需要转置然后使用列表理解吗?
答案 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