對不起,這個模糊的標題很難解釋清楚。分割每個第n個字符串元素併合併到數組中的最佳方法?
基本上,想象我有一個列表(在Python),看起來像這樣:
['a', 'b', 'c\nd', 'e', 'f\ng', 'h', 'i']
從這一點,我想這一點:
['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i']
一個辦法,我想這樣做的這是使用reduce
像這樣:
reduce(lambda x, y: x + y.split('\n'), lst, [])
但我不認爲這是非常有效的,因爲它沒有利用我們知道每個第n個元素都有分隔符的事實。有什麼建議麼?
編輯:關於如何構造數組的更多背景,這可能是問題所在。
我在格式文本:
Ignorable line
Field name 1|Field name 2|Field name 3|Field name 4
Value 1|Value 2|Value 3|Value 4
Value 1|Value 2|Value 3|Value 4
...
我們可以去那裏字段名的任意量,也總會數量相等值的行的字段名。請注意,我們可以在值中添加新行。我們只知道會被'|'分開。所以我們可以有
Value 1|This is an long
value that extends over multiple
lines|Value 3|Value 4
我怎麼做目前這是做一個s.split('\n', 2)
,使我們得到自己的字符串在自己的字符串字段名稱,和值。然後,當用'|'分割值時,我們得到我最初提到的表格的列表。
你是什麼意思的每第n個元素......它看起來像
你的n從3變到2 ......除了它可能快很多......除非它實際上不是,但在那種情況下你會知道那是你的瓶頸......過早優化是所有邪惡的根源 –
在示例中,\ n總是跟隨第三項(c是字母表的第三個字母; f是第六個)。我很好奇,是什麼原因導致你以這種格式獲得最初的列表。如果你改變了你構建原始列表的方式,那麼代碼可能會更乾淨......這感覺就像一個破解解析器的解決方法。 – ramcdougal
@ramcdougal它可能是它不是構建該列表的最佳方式。我會以這種形式更新帖子。 – mp94