前提・実現したいこと
リストに格納されているスライスした内容を、指定した部分で区切りたい。
該当のソースコード
python
1NutrientsLists =[['熱量:200kcal', 2 'たんぱく質:6.1g', 3 '脂質:1.5g', 4 '炭水化物:41.3g', 5 '糖質:39.5g', 6 '食物繊維:1.8g', 7 '食塩相当量:2.4g'], 8 ['熱量:160kcal', 9 'たんぱく質:3.0g', 10 '脂質:0.8g', 11 '炭水化物:36.5g', 12 '糖質:34.2g', 13 '食物繊維:2.3g', 14 '食塩相当量:1.7g'], 15 ['熱量:173kcal', 16 'たんぱく質:3.3g', 17 '脂質:0.8g', 18 '炭水化物:39.1g', 19 '糖質:37.0g', 20 '食物繊維:2.1g', 21 '食塩相当量:1.1g']] 22 23New_NutrientsLists = [] 24 25for NutrientsList in NutrientsLists: 26 for i in range(len(NutrientsList)): 27 s = NutrientsList[i] 28 29 target = ':' 30 idx = s.find(target) 31 r = s[idx + 1:] 32 New_NutrientsLists.append(r) 33 34New_NutrientsLists
出力結果
python
1['200kcal', 2 '6.1g', 3 '1.5g', 4 '41.3g', 5 '39.5g', 6 '1.8g', 7 '2.4g', 8 '160kcal', 9 '3.0g', 10 '0.8g', 11 '36.5g', 12 '34.2g', 13 '2.3g', 14 '1.7g', 15 '173kcal', 16 '3.3g', 17 '0.8g', 18 '39.1g', 19 '37.0g', 20 '2.1g', 21 '1.1g']
実現したいこと
熱量であるkcalごとにリストを区切りたいので、
python
1[['200kcal', 2 '6.1g', 3 '1.5g', 4 '41.3g', 5 '39.5g', 6 '1.8g', 7 '2.4g'], 8 ['160kcal', 9 '3.0g', 10 '0.8g', 11 '36.5g', 12 '34.2g', 13 '2.3g', 14 '1.7g'], 15 ['173kcal', 16 '3.3g', 17 '0.8g', 18 '39.1g', 19 '37.0g', 20 '2.1g', 21 '1.1g']]
こういった形に要素を区切る方法を模索しています。
試したこと
リスト型のままfind
を使用してしまうとAttributeError
となってしまうため、リストの内容を一度変数に格納して処理を試みました。
for文の位置を変えたりして試しましたが解決には至っておらず、ご教授いただきたく存じます。
補足情報(FW/ツールのバージョンなど)
python 3.8.8
windows 10
リストNutrientsLists
は要素数が3しかありませんが、スクレイピングし抽出した内容が本来格納されているものとなり、分かりやすいよう省略しています。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/11/28 12:23