基于主列表拆分生成三个子列表的Python实现问题
Python列表拆分实现方案
需求说明
需要从main_list的每个字符串元素中拆分出三个独立列表:
first_list:每个元素的前5个单词组成的字符串segond_list:每个元素中前5个单词之后、最后5个单词之前的部分(可能是单个或多个单词)third_list:每个元素的最后5个单词组成的字符串
示例输入:
main_list = ['15 de Març del 1997 Mèxic 03 de Gener del 2023', '08 de Octubre del 1988 Suècia 09 de Febrer del 2023', "08 de Desembre del 1991 Estats Units d'Amèrica 09 de Febrer del 2023"]
期望输出:
first_list = ['15 de Març del 1997', '08 de Octubre del 1988','08 de Desembre del 1991'] segond_list = ['Mèxic','Suècia',"Estats Units d'Amèrica"] third_list = ['03 de Gener del 2023','09 de Febrer del 2023','09 de Febrer del 2023']
可行实现代码
通过将每个字符串拆分为单词列表,再利用切片提取对应部分的方式实现:
main_list = ['15 de Març del 1997 Mèxic 03 de Gener del 2023', '08 de Octubre del 1988 Suècia 09 de Febrer del 2023', "08 de Desembre del 1991 Estats Units d'Amèrica 09 de Febrer del 2023"] first_list = [] segond_list = [] third_list = [] for item in main_list: words = item.split() # 按空白分割成单词列表 # 提取前5个单词并拼接 first_part = ' '.join(words[:5]) first_list.append(first_part) # 提取中间部分(第5个到倒数第5个之前)并拼接 middle_part = ' '.join(words[5:-5]) segond_list.append(middle_part) # 提取最后5个单词并拼接 third_part = ' '.join(words[-5:]) third_list.append(third_part) # 验证结果 print(first_list) print(segond_list) print(third_list)
代码说明
item.split():不带参数时会自动按任意空白字符(空格、制表符等)分割字符串,得到完整的单词列表,避免手动指定分割次数的局限性。- 切片操作:
words[:5]:取列表的前5个元素(对应原字符串的前5个单词)words[5:-5]:取从第5个元素到倒数第5个元素之前的部分(中间的所有单词)words[-5:]:取列表的最后5个元素(对应原字符串的最后5个单词)
' '.join(...):将切片得到的单词列表重新拼接为字符串,保持原有的空格分隔格式。
内容的提问来源于stack exchange,提问作者lluis pascual
相关产品推荐
相关产品推荐

