質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

2回答

458閲覧

Pythonでのlistの分割方法

mikanken

総合スコア10

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2019/08/14 09:21

python

1a = [[3, 5],[1, 2, 3, 4, 5], [5, 6]...]

上記ののような要素数がバラバラなlist a を

python

1a = [[3, 5],[1, 2], [2, 3], [3, 4], [4, 5], [5, 6]...]

のように要素数が2以外の部分を要素数2にしてlistに格納したいです。
この時、上例の変換後のように値を重複させて順番をずらすことなくlist化したいです。

よろしくお願いいたします

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

興味深い問題だと思います。例えばこのように解決出来ます。

Python

1src = [[3, 5], [1, 2, 3, 4, 5], [5, 6]] 2 3# 4dst1 = [ 5 [e1, e2] for b in src for e1, e2 in zip(b, b[1:]) 6] 7print(dst1) # => [[3, 5], [1, 2], [2, 3], [3, 4], [4, 5], [5, 6]] 8 9# 10dst2 = [] 11for b in src: 12 for e1, e2 in zip(b, b[1:]): 13 dst2.append([e1, e2]) 14 15print(dst2) # => [[3, 5], [1, 2], [2, 3], [3, 4], [4, 5], [5, 6]] 16 17# 18dst3 = [] 19for b in src: 20 dst3 += [list(p) for p in zip(b, b[1:])] 21 22print(dst3) # => [[3, 5], [1, 2], [2, 3], [3, 4], [4, 5], [5, 6]]

丸投げな感も多分に有りますので、次のサンプルを説明に替えることとします。

Python

1>>> lst = [1, 2, 3, 4, 5] 2>>> 3>>> lst 4[1, 2, 3, 4, 5] 5>>> lst[1:] 6[2, 3, 4, 5] 7>>> 8>>> for e1, e2 in zip(lst, lst[1:]): 9... print(e1, e2) 10... 111 2 122 3 133 4 144 5

投稿2019/08/14 09:32

編集2019/08/14 09:34
LouiS0616

総合スコア35658

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mikanken

2019/08/14 10:25

説明とても分かり易かったです!! 実装してみようと思います!!
LouiS0616

2019/08/14 10:39 編集

質問の際は、実際どんなことを試したのか必ず書くようにして下さい。コードを添えると良いでしょう。 試行錯誤の末に質問に至ったのか/あるいは単に労力を省く目的なのか、私を含め他のユーザには判断が付きません。
guest

0

a.py

python3

1def slice2(data): 2 if data == None or len(data) < 2: 3 return data 4 return [data[i: i + 2] for i in range(len(data) - 1)] 5 6src = [ 7 [3, 5], [1, 2, 3, 4, 5], [5, 6], 8 [7], [], None, 9 [[1, 2], [3, 4]] 10] 11src2 = [slice2(x) for x in src] 12print(src2)

実行例
イメージ説明

[] 「1」、None など 質問文にはない要素をどう処理するかは slice2 メソッドを適宜 変更する必要があります。

投稿2019/08/14 22:37

katoy

総合スコア22324

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問