BeatifulSoupで取得した値で指定する値のみ出力したいのですが簡素に記述できません
どのようにしたら簡素出来るのかご教授お願いできませんでしょうか
python
1data = [['A', 'B'], ['D'], ['E'], ['F', 'G', 'H', 'I', 'J'], ['F', 'G', 'H', 'I', 'J'], ['F', 'G', 'H', 'I', 'J'],\ 2 ['A', 'B'], ['D'], ['E'], ['F'], ['F', 'G', 'H', 'I', 'J'], ['F', 'G', 'H', 'I', 'J'],\ 3 ['A', 'B'], ['D'], ['E'], ['F', 'G', 'H', 'I', 'J'], ['F', 'G', 'H', 'I', 'J'], ['G'],\ 4 ['A', 'B'], ['D'], ['E'], ['F', 'G', 'H', 'I', 'J'], ['F', 'G', 'H', 'I', 'J'], ['F', 'G', 'H', 'I', 'J'],\ 5 ['A', 'B'], ['D'], ['E'], ['F'], ['F', 'G', 'H', 'I', 'J'], ['F', 'G', 'H', 'I', 'J'],\ 6 ['A', 'B'], ['D'], ['E'], ['F'], ['F', 'G', 'H', 'I', 'J'], ['F', 'G', 'H', 'I', 'J'],\ 7 ['A', 'B'], ['D'], ['E'], ['F', 'G', 'H', 'I', 'J'], ['F', 'G', 'H', 'I', 'J'], ['F', 'G', 'H', 'I', 'J'],\ 8 ['A', 'B'], ['D'], ['E'], ['F', 'G', 'H', 'I', 'J'], ['F'], ['F', 'G', 'H', 'I', 'J'],\ 9 ['A', 'B'], ['D'], ['E'], ['F', 'G', 'H', 'I', 'J'], ['F', 'G', 'H', 'I', 'J'], ['G'],\ 10 ['A', 'B'], ['D'], ['E'], ['F', 'G', 'H', 'I', 'J'], ['F', 'G', 'H', 'I', 'J'], ['G', 'H', 'I', 'J']]
取得した値は、A~Jの値を二次元配列で10回程度ループしてこのように並んでいます
この中から H だけを出力したいのですが
H が無い箇所などもあるため、if文で分岐させているのですが記述が長くなってしまいます
現在の記述
python
1for i in range(len(data)): 2 count = 0 3 for num in data[i]: 4 if 3 <= i <= 5: 5 if len(data[i]) == 1 and 'F' in num or \ 6 len(data[i]) == 1 and 'G' in num: 7 count = 0 8 print('H無し') 9 elif count < 2: 10 count += 1 11 elif count == 2: 12 print(num) 13 count += 1 14 else: 15 pass 16 17 elif 9 <= i <= 11: 18 if len(data[i]) == 1 and 'F' in num or \ 19 len(data[i]) == 1 and 'G' in num: 20 count = 0 21 print('H無し') 22 elif count < 2: 23 count += 1 24 elif count == 2: 25 print(num) 26 count += 1 27 else: 28 pass 29 30 elif 15 <= i <= 17: 31 if len(data[i]) == 1 and 'F' in num or \ 32 len(data[i]) == 1 and 'G' in num: 33 count = 0 34 print('H無し') 35 elif count < 2: 36 count += 1 37 elif count == 2: 38 print(num) 39 count += 1 40 else: 41 pass 42 # 以後7回繰り返し 43
途中の分岐の値が変わるだけなので簡素にできそうなのですが、自分の力ではできません...
この記述を簡素にすることはできますでしょうか?
宜しくお願いいたします。
回答2件