如何按首字母将一个数组分类为多个数组?
按元素首字母对数组进行分类
需求说明
将字符串数组按每个元素的首字母分组,示例如下:
原数组:
list1 = ["apple", "banana", "carrot", "avocado"]
期望输出:
a = ["apple", "avocado"] b = ["banana"] c = ["carrot"]
实现方案(Python)
推荐用字典存储分组结果,这种方式灵活可扩展,避免手动创建大量单独变量:
list1 = ["apple", "banana", "carrot", "avocado"] grouped = {} for item in list1: # 提取首字母并转小写,避免大小写差异导致分组错误(比如Apple和apple会分到同一组) first_char = item[0].lower() # 若当前首字母未在字典中,先初始化空列表 if first_char not in grouped: grouped[first_char] = [] # 将元素添加到对应分组 grouped[first_char].append(item) # 按示例格式输出结果 for char, items in grouped.items(): print(f"{char} = {items}")
输出结果
a = ['apple', 'avocado'] b = ['banana'] c = ['carrot']
补充说明
如果确实需要将分组结果赋值为单独变量(如a、b、c),可通过字典items()方法实现,但仅适用于首字母数量固定且较少的场景,不推荐通用使用:
for char, items in grouped.items(): locals()[char] = items # 此时可直接访问变量 print(a) # 输出: ['apple', 'avocado']
内容的提问来源于stack exchange,提问作者Haloxx
相关产品推荐
相关产品推荐

