Python如何删除列表中所有以'n'开头单词的第一个字符
代码问题原因
- 多余嵌套了遍历单词字符的
for j in it循环:你不需要逐个检查单词的每个字符,只需要判断整个单词的首字符是否为'n'即可。原逻辑会只要单词内出现字符'n',就会触发首字符删除操作,才会出现不符合预期的错误。 - 缺少非n开头单词的保留逻辑:原代码仅添加了处理后的n开头单词,非n开头的单词直接被遗漏了。
正确实现
基础循环版本(和你的写法风格一致)
lista_A = [] for it in filtered_sent: # 直接判断单词是否以字母n开头 if it.startswith('n'): lista_A.append(it[1:]) else: # 不符合条件的单词直接原样存入 lista_A.append(it)
简洁列表推导式版本
一行代码即可完成需求,执行效率更高:
lista_A = [it[1:] if it.startswith('n') else it for it in filtered_sent]
处理后的结果完全符合需求:比如'nnueva'转为'nueva'、'nartista'转为'artista',其余非n开头的单词不会做任何修改。
内容的提问来源于stack exchange,提问作者María Paula
相关产品推荐
相关产品推荐

