ヘッダーが"Header"
文字列で始まるリストがあり、ヘッダーに対応する データがリスト内で連続して続きます。次"Header"
接頭辞の要素で終わる: - それは、古典的な種だと延長サブリストのサイズがデータ値に依存する場合のリストの分割(シードと拡張)
data = ["Header: 1",
"Some info 1",
"Some info 2",
"Some info 3",
"Header: 2",
"Some info 4",
"Header: 3",
"Some info 5",
"Some info 6",
]
len(data) # returns 9
私は、ヘッダ・データ要素のリストを作成するには、ヘッダの間隔でリストを分割したいと思います。したがって、最終目標は:
entries = [ ["Header: 1",
"Some info 1",
"Some info 2",
"Some info 3"],
["Header: 2",
"Some info 4"],
["Header: 3",
"Some info 5",
"Some info 6"]
]
len(data) # returns 3
各ヘッダーに関連付けられたデータ要素の数は可変です。 各ヘッダーは"Header"
で始まるので、これを使用して間隔を とすることができます。 私は解決するために、ループを使用することができます。
entries = []
for i in range(0,len(data)):
if "Header" in data[i]:
entry = []
entry.append(data[i])
i = i + 1
while("Header" not in data[i]):
entry.append(data[i])
i = i + 1
if i == len(data):
break
entries.append(entry)
しかし、私は疑問に思うこれを行うことができます1つのライナー(もしくは近いもの)があるのですか? おそらくリストの理解のアプローチ。私はPythonライブラリに精通していませんが、標準ライブラリの解決策もうまくいきます。ここで
entries = []
entry = None
for element in data:
if element.startswith('Header'): #or 'Header' in element if it can be everywhere
entry = []
entries.append(entry)
entry.append(element)
あなたがこれdata
にelement
Sを反復:
したがって、すべてのヘッダーで始まりますか? –
はい。データのヘッダ要素は常に接頭辞 '' Header ''で始まります。 –
そして、リストがヘッダーで始まっていることは確かに分かりますか?もし何が起こらなければならないのですか? –