python
1lis = [[5,6], 2[9,11], 3[15,16], 4[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
1lis = [[5,6], 2[9,11], 3[15,16], 4[19,22]] 5 6lis2 = [] 7for n in range(len(lis)): 8 l = [] 9 for i in range(lis[n][0], lis[n][-1] + 1): 10 l.append(i) 11 lis2.append(l) 12 13lis3 = [] 14for li in lis2: 15 for l in li: 16 lis3.append(l) 17 18 19new_lis = [] 20n = 0 21for i in range(0, lis2[-1][-1] + 1): 22 if i not in lis3: 23 new_lis.append(i) 24 25n = 0 26for i in range(len(lis2)): 27 ind = new_lis.index(lis2[n][0]-1) 28 new_lis.insert(ind +1, lis2[i]) 29 n += 1 30
このように書いてみました。
結果は以下になります。
[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
皆様いつもお世話になっております。
たくさんのご回答ありがとうございます。
私なりにベストアンサーを決めさせていただきました!
しかし皆様のご回答、どれも参考になりました。
そして初歩的ですが新しい発見もありました。ありがとうございます。
日々精進してまいります。
回答7件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/12/17 18:24
2021/12/21 13:27