python
lis = [[5,6], [9,11], [15,16], [19,22]]
このリストがあり
下の様なリストにするためにコードを書いたのですが
他に良い方法があればお聞きしたいです。
[0, 1, 2, 3, 4, [5, 6], 7, 8, [9, 10, 11], 12, 13, 14, [15, 16], 17, 18, [19, 20, 21, 22]]
やったこと
python
lis = [[5,6], [9,11], [15,16], [19,22]] lis2 = [] for n in range(len(lis)): l = [] for i in range(lis[n][0], lis[n][-1] + 1): l.append(i) lis2.append(l) lis3 = [] for li in lis2: for l in li: lis3.append(l) new_lis = [] n = 0 for i in range(0, lis2[-1][-1] + 1): if i not in lis3: new_lis.append(i) n = 0 for i in range(len(lis2)): ind = new_lis.index(lis2[n][0]-1) new_lis.insert(ind +1, lis2[i]) n += 1
このように書いてみました。
結果は以下になります。
[0, 1, 2, 3, 4, [5, 6], 7, 8, [9, 10, 11], 12, 13, 14, [15, 16], 17, 18, [19, 20, 21, 22]]
得たい実行結果は得られたのですが
やってて無理矢理感を感じ
もし他に良い方法があればお聞きしたいと思い
こちらで質問させていただきました。
有識者様のお力をお借りできればと思います。
是非宜しくお願い致します。
追記 2021/12/18 15:17
皆様いつもお世話になっております。
たくさんのご回答ありがとうございます。
私なりにベストアンサーを決めさせていただきました!
しかし皆様のご回答、どれも参考になりました。
そして初歩的ですが新しい発見もありました。ありがとうございます。
日々精進してまいります。
まだ回答がついていません
会員登録して回答してみよう