如何按首字母A-M、N-Z范围拆分含键值对的列表?
按首字母范围拆分字符串列表的实现
判断规则
拆分时以每个元素的首字符为判断依据,不区分大小写:
- 首字母落在a~m区间的元素,存入第一列表list1
- 首字母落在n~z区间的元素,存入第二列表list2
Python中字符串可以直接按照字典序做大小比较,不需要额外生成字符匹配列表,判断效率更高。
实现代码
Main_list = ['a 1', 'her 1', 'her 1', 'lately','mr 1', 'ornament 1', 'pleased 1', 'saturday 1', 'view 1', 'youth 1'] list1 = [] list2 = [] for item in Main_list: # 取元素首字符转小写,消除大小写差异的影响 first_char = item[0].lower() if 'a' <= first_char <= 'm': list1.append(item) else: list2.append(item)
输出结果
运行代码后得到的两个列表和预期完全一致:
list1 = ['a 1', 'her 1', 'her 1', 'lately', 'mr 1'] list2 = ['ornament 1', 'pleased 1', 'saturday 1', 'view 1', 'youth 1']
注意事项
如果主列表里存在非英文字母开头的元素(比如数字、特殊符号开头的条目),上述代码会默认把这类元素归入list2。如果需要单独处理这类非字母开头的元素,可以在范围判断前增加一层校验:先确认首字符是英文字母,再按规则归类。
内容的提问来源于stack exchange,提问作者Marceloo
相关产品推荐
相关产品推荐

