亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Python:計算二維列表列中元素的出現次數

Python:計算二維列表列中元素的出現次數

慕哥9229398 2023-03-22 16:40:38
對于兩組,您可以position相應地傳遞和調整寬度:fig, ax = plt.subplots()stacked_data.plot(kind="bar", stacked=True, width=0.4,                   ax=ax, position=0)stacked_data2.plot(kind="bar", stacked=True, width=0.4,                    ax=ax, position=1, hatch='//')ax.set_xlim(right=len(stacked_data)-0.5)輸出:
查看完整描述

3 回答

?
慕容3067478

TA貢獻1773條經驗 獲得超3個贊

這是一個可能的解決方案:


result = data + [['nums'] + [sum(1 if data[row][col] == 'X' else 0

                                 for row in range(1, len(data)))

                             for col in range(1, len(data[0]))]]

此操作后result如下所示:


[["", "a", "b", "c"],

 ["a", "X", 1, "X"],

 ["b", "X", 2, "X"],

 ["c", "X", "foo", 3]]

 ["nums", 3, 0, 2]]


查看完整回答
反對 回復 2023-03-22
?
互換的青春

TA貢獻1797條經驗 獲得超6個贊

我修改了你的代碼。X所以我添加了一個字典來記錄一列中出現的次數。


data[1:]--> 將忽略第一行 row[1:]--> 將忽略每一行的第一列值。


def foo(data):

    new_data = data[1:]

    d = { i:0 for i in range(len(data))}

    d.update({0:"nums"})


    for row in (new_data):

        for col_num, col in enumerate(row[1:], start=1):

            if col == "X":

                d[col_num] += 1 #e.g: if indexes = [1, 3, 1, 3, 1]: there is 3 "X":s in column 1, and 2 "X":s in column 3


    data.append(list(d.values()))

    return data


foo(data)

[['', 'a', 'b', 'c'],

 ['a', 'X', 1, 'X'],

 ['b', 'X', 2, 'X'],

 ['c', 'X', 'foo', 3],

 ['nums', 3, 0, 2]]


查看完整回答
反對 回復 2023-03-22
?
守候你守候我

TA貢獻1802條經驗 獲得超10個贊

numpy 很方便


res=[col.tolist().count('X') for col in numpy.transpose(data)]

res[0]='nums'

data+[res]

或者,


res=numpy.count_nonzero(numpy.array (data)=='X',axis=0).tolist()

res[0]='nums'

data+[res]


查看完整回答
反對 回復 2023-03-22
  • 3 回答
  • 0 關注
  • 448 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號