前提・実現したいこと
python3でクイズプログラムを作成しようとしています。
csvファイル plant.csv に植物の名前、科、その他の性質を一覧にまとめており、
({'name': 'カブ', 'family': 'アブラナ科', 'character': '春の七草'}
{'name': 'キキョウ', 'family': 'キキョウ科', 'character': '秋の七草'}等)
これらを辞書形式で読み込んだ後、
1.ランダムで植物を選びたい
2.その植物の科や性質を呼び出したい
のですが、randomを使っているのに、いつも最後の辞書が選択されてしまいます。
その際nameが選ばれたりfamilyが選ばれたり、選択するキーがランダムになっているうようです。
※最終的には
1.問題に使う植物Aをランダムに選択
2.Aと同じ科の植物の中から別のひとつBを選択(答えとなる)
3.Aと異なる科の植物の中から3つを選択(C,D,E)
4.「Aと同じ科の植物はどれか選べ」という問題に
B,C,D,Eの選択肢を提示する
というプログラムを想定しています。
発生している問題・エラーメッセージ
エラーメッセージ
該当のソースコード
python3.8.0
1 2import random 3import csv 4 5with open('plant.csv', newline='') as csvfile: 6 reader = csv.DictReader(csvfile) 7 for row in reader: 8 print(row) 9 10# 上記DictReaderで読み込んだ辞書リストから、問題用に、ひとつの植物を選択する 11 12p_plant = random.choice(list(row.items())) 13print(p_plant)
試したこと
いろいろ調べたのですが、辞書を含んだリストの処理について記述されているものが少なく
質問させていただきました。
回答1件
あなたの回答
tips
プレビュー