python 数据结构处理题

python 数据结构处理题

['', 'CAS:', '', '', '689-97-4', '', '', '', '中文名称:', '', '乙烯基乙炔', '', '', '英文名称:', '', 'Vinyl acetylene;Buten-3-yne', '', '', '别 名:', '', '', '', '', '分子式:', 'C4H4;CH2CHCCH', '分子量:', '', '52.04', '', '', '熔 点:', '', '-118℃  沸点:5℃', '', '', '密 度:', '', '相对密度(水=1)0.71;', '', '', '蒸汽压:', '', '', '', '溶解性:', '', '', '', '', '稳定性:', '', '稳定', '', '', '外观与性状:', '', '气态(常温)', '', '', '危险标记:', '', '4(易燃气体)', '', '', '用 途:', '', '在工业上是很需要的烯炔烃化合物,用于制备合成橡胶的单体2-氯丁二燃-[1,3]等']

比如
'别 名:', '', '', '', '', '分子式:' 这两个中间有4个空格,那么我想把这四个空格变一个空格 就是这样 '别 名:','',然后小于4个空格的都删掉,比如'CAS:', '', '', '689-97-4' 这两个中间有2个空格,我都删掉 'CAS:' '689-97-4'

有4个空格变为1个空格,少于4个空格都删除,求算法


回答:

一行js代码解决

var arr = ['', 'CAS:', '', '', '689-97-4', '', '', '', '中文名称:', '', '乙烯基乙炔', '', '', '英文名称:', '', 'Vinyl acetylene;Buten-3-yne', '', '', '别 名:', '', '', '', '', '分子式:', 'C4H4;CH2CHCCH', '分子量:', '', '52.04', '', '', '熔 点:', '', '-118℃  沸点:5℃', '', '', '密 度:', '', '相对密度(水=1)0.71;', '', '', '蒸汽压:', '', '', '', '溶解性:', '', '', '', '', '稳定性:', '', '稳定', '', '', '外观与性状:', '', '气态(常温)', '', '', '危险标记:', '', '4(易燃气体)', '', '', '用 途:', '', '在工业上是很需要的烯炔烃化合物,用于制备合成橡胶的单体2-氯丁二燃-[1,3]等']

console.log(arr.join().replace(/(\,{5})/g, m => ',%,').split(',').filter(e => e).map(e => e == '%' ? '' : e))


回答:

python">def handle_blank(arr):

blank_cnt = 0

has_blank = False

new_arr = []

for s in arr:

if s == '':

blank_cnt += 1

if blank_cnt >= 4:

has_blank = True

else:

if has_blank:

new_arr.append('')

has_blank = False

blank_cnt = 0

new_arr.append(s)

if has_blank:

new_arr.append('')

return new_arr

没想到有什么优雅的算法-_-

以上是 python 数据结构处理题 的全部内容, 来源链接: utcz.com/p/937711.html

回到顶部