在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/Java  Python/ 關(guān)于正則中finditer輸出的一個(gè)疑問(wèn)

關(guān)于正則中finditer輸出的一個(gè)疑問(wèn)

for index, row in train_set.iterrows():

S = str(row['描述'])
M = re.finditer(match_target, S)
part_index_list = [(m.start(), m.start() + len(m.group()) - 1) for m in M]
part_list = [m.group() for m in M]

run后,part_index_list列表正常有值,part_list一直為空,理論上part_index_list應(yīng)該是與part_list相對(duì)應(yīng)的,同時(shí)空或者同時(shí)非空,結(jié)果似乎不太科學(xué),請(qǐng)指點(diǎn).

回答
編輯回答
毀憶

原因@pein已經(jīng)給出.
針對(duì)除了再finditer一次外還有什么更好的方法呢?, 可以這樣做:

part_index_list = []
part_list = []
for m in M:
    part_index_list.append((m.start(), m.start() + len(m.group()) - 1))
    part_list.append(m.group())

或者:

part_tuple = [((m.start(), m.start() + len(m.group()) - 1), m.group()) for m in M]
part_index_list, part_list = zip(*part_tuple)
2018年1月7日 08:44
編輯回答
病癮

因?yàn)樵诮opart_index_list賦值的時(shí)候已經(jīng)消耗掉了生成器M中的元素,所以在給part_list賦值時(shí),M中已經(jīng)沒(méi)有元素了。

2018年8月2日 20:59