92837


今pythonでリストに名前と点数を追加できるコードを書いています。  
以下のコードは名前と点数をリストに追加、そしていつコードを終了するのを試すテストコードで、問題なく動くきます。ただ、書きたいコードは名前と点数を最後にまとめてプリントするコードが書きたいのですが、どのような変更をすればいいですか？様々なアドバイスを聞けるのを楽しみにしています。

現コード

[code]

    def listofname():
        members = []
        scores = []
        done = False
        while done != True:
            Students = input("Enter a name or enter 'done' when finished")
            if Students == "done":
                done = True
            
            else:
                members.append({"name": Students})
                Score = input("Enter score")
                scores.append({"Score": Score})
            
            print(members)
            print(scores)
    
    print(listofname())
    
[/code]

プリントされるデータ

[code]

    [{'name': 'Tanaka'}, {'name': 'Yamada'}, {'name': 'Kojima'}]
    [{'Score': '70'}, {'Score': '20'}, {'Score': '80'}]
    
[/code]

プリントしてほしいデータ

[code]

    [{'name':Tanaka, Yamada,Kojima}]
    [{'Score':70,20,80}]
    
[/code]

もし可能であればリストに追加された名前の数のプリントと点数の最高点、最低点、平均点もプリントできるコードの書き方も教えていただけると幸いです。

長文失礼しました


CC BY-SA 4.0
2022-12-17T09:04:55.003
92835
2022-12-17T11:29:36.913
2022-12-17T09:30:01.353
26370
54742
question
python
リストに名前と点数を追加し、最後にまとめて表示したい


質問文にある「期待する出力結果」はシンタックス・エラーになります。

[code]

    [{'name':Tanaka, Yamada,Kojima}]
    [{'Score':70,20,80}]
    
[/code]

以下、`name`, `Score` を辞書のキーとして、値をリストにするコードです。  
※ `int(Score)` の部分で `ValueError` が発生する可能性があります。

[code]

    def listofname():
        members, scores = {'name': []}, {'Score': []}
        while 1:
            Students = input("Enter a name or enter 'done' when finished ")
            if Students == 'done': break
            members['name'] += [Students]
            Score = input('Enter score ')
            scores['Score'] += [int(Score)]
            
        print(members)
        print(scores)
    
    if __name__ == '__main__':
        listofname()
    
    # {'name': ['Tanaka', 'Yamada', 'Kojima']}
    # {'Score': [70, 20, 80]}
    
[/code]


CC BY-SA 4.0
2022-12-17T09:46:48.027
92837
2022-12-17T11:29:36.913
2022-12-17T11:29:36.913
47127
47127
92835
answer