如何为已排序字符串数组按首字符分组加标签输出?数字归为[0-9]组
按首字符分组并带标签输出的实现方案
核心思路
- 遍历已排序数组,提取每个元素的首字符
- 数字开头的元素统一归到
[0-9]组,字母开头的元素按首字符(可统一大小写)分组 - 按「数字组优先,字母组按顺序」的规则输出,组标签加粗,元素用列表展示
Python 实现代码
sorted_array = ['1_array_content', '3_array_content', 'apple', 'ant', 'bucket'] grouped_data = {} # 第一步:分组处理 for item in sorted_array: first_char = item[0] # 判断首字符是否为数字,分配对应组键 if first_char.isdigit(): group_key = "[0-9]" else: # 统一转为小写,避免大小写分组差异,不需要的话可去掉.lower() group_key = first_char.lower() # 将元素加入对应组 if group_key not in grouped_data: grouped_data[group_key] = [] grouped_data[group_key].append(item) # 第二步:按要求格式输出 # 先输出数字组(如果存在) if "[0-9]" in grouped_data: print("**[0-9]**") for elem in grouped_data["[0-9]"]: print(f"- {elem}") del grouped_data["[0-9]"] # 移除已输出的组,避免重复处理 # 按字母顺序输出剩余组 for key in sorted(grouped_data.keys()): print(f"**[{key}]**") for elem in grouped_data[key]: print(f"- {elem}")
输出效果
**[0-9]** - 1_array_content - 3_array_content **[a]** - apple - ant **[b]** - bucket
自定义调整说明
- 如果需要区分大小写分组,删除代码中
first_char.lower()的.lower()即可 - 若数组未预先排序,可在分组前先执行
sorted_array = sorted(original_array)确保顺序正确
内容的提问来源于stack exchange,提问作者avocado
相关产品推荐
相关产品推荐

