プロが教えるわが家の防犯対策術!

pythonでデータを以下のように辞書型で持ちたいと思っております。

■欲しい結果
{"月":{"A":{"レジ":3, "品出し:1"},"B":{"レジ":3, "品出し:1"}},
"火":{"A":{"レジ":1, "品出し:1"},"B":{"レジ":0, "品出し:0"}}}

■試したコード
timezone_position_count = {}

timezone_position_count =\
{i:{j:{n:len(set(positioni_dic[n].member) & set(schedule_dic[i][j]))\
for i in week_list for j in timezone_list for n in position}}}

・変数説明
timezone_position_countに各曜日の配置に何人いるかを格納しております。
week_list  ["月"....”日”] 曜日がリスト型で格納されています。
timezone_list  ["A"....”E”] A~Eがリスト型で格納されています。
position ["レジ"....”倉庫”] 配置名がリスト型で格納されています。

実際に試したコードだと実行したら以下の結果になりました。
{'日': {'E': {'レジ': 3,
'品出し': 2,
'倉庫': 2}}}

いろいろ調べてみたのですがうまくいきません、
申し訳ございませんがご教授お願い致します。

※for文の入れ子では出来たのですが内包表記でもっとスッキリできないかと思って調べております。

質問者からの補足コメント

  • 説明不足で申し訳ありません。

    positioni_dic[n].member
    classで定義されておりnに配置名を入れると対応できる人の名前がリスト型として格納されております。

    schedule_dic[i][j]
     辞書型でi=曜日 j=シフト帯で指定すると勤務される人の名前がリスト型として格納されております。

    この2つを使って各曜日の各シフト帯で配置別に何人対応できる人がいるかを格納したいと思っております。

    No.2の回答に寄せられた補足コメントです。 補足日時:2022/03/17 19:26

A 回答 (2件)

positioni_dic、 schedule_dic って何?

この回答への補足あり
    • good
    • 0
この回答へのお礼

sukitaroさんの回答で解決いたしました。
ありがとうございます。

お礼日時:2022/03/17 19:51

入れ子的にはこんな感じでしょうか。



timezone_position_count = {i:{j:{n: 'len ' for n in position} for j in timezone_list} for i in week_list}
    • good
    • 0
この回答へのお礼

ありがとうございます。
欲しいデータ構造になりました。
辞書の扱い方と内包表記の勉強になりました。

お礼日時:2022/03/17 19:51

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!