![](/img/trans.png)
[英]How to split a multiline string with space-delimited integers to a list of lists for each line
[英]How would I eliminate spacing, line breaks to have a space-delimited string for each string within my list python
大家好,我是python新手,想要一些幫助。 我有一些示例數據,想知道如何擺脫每個列表中每個字符串的間距。
data = [
['In dolore .'], ['Voluptatum. '],
['Veniam hic non minima. '],
['Dolores Quis enim'],
[' sequi ducimus']
]
print data
我想要的輸出:
data = [
['In dolore.'], ['Voluptatum.'],
['Veniam hic non minima.'],
['Dolores Quis enim'],
['sequi ducimus']
]
這是我認為可行但無法奏效的兩種方法
for i in data:
str = ''.join(data)
final_data = str.replace(" ","")
print final_data
我最后的嘗試是:
final_data = ''.join(data)
final_data.replace(" ", "")
print final_data
您可以在這里使用正則表達式
import re
for i in range(len(data)):
data[i][0] = re.sub(r'(\w)\s\s+(\w)', r'\1 \2', data[i][0])
data[i][0] = re.sub(r'\s\s+', r'', data[i][0])
data[i][0] = re.sub(r"(\w)\s([.])", r"\1\2", dat[i][0])
正則表達式模式\\s\\s+
與2個或更多空格字符的所有組匹配。 如前所述,如果兩個單詞之間的間隔大於1,則會消除單詞之間的間隔。 r'\\w\\s\\s+\\w', r'\\1 \\2'
通過用單個空格消除單詞邊界之間的空格來解決這一問題。
另請注意,它是data[i][0]
因為奇怪的是數據是列表的列表。
import re
final_data = [[re.sub('\s+\.', '.', re.sub('\s+', ' ', s)).strip()] for l in data for s in l]
print final_data
[['In dolore.'], ['Voluptatum.'], ['Veniam hic non minima.'], ['Dolores Quis enim'], ['sequi ducimus']]
這樣就刪除了前導和尾隨空白,而內部空間並未完全消除。
內部替換用單個空格替換多個空格字符,而外部替換在句點之前消除空白字符。 strip
功能消除了前導和尾隨空格。
print [[s.replace(" ","")] for l in data for s in l ]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.