You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用纯Python实现指定列表的格式转换(替代Pandas方案)

问题描述

输入:

my_list = ["x d1","y d1","z d2","t d2"]

期望输出:

Expected_result = ["d1(x,y)","d2(z,t)"]

当前已通过Pandas实现,但希望找到纯Python解决方案,现有Pandas代码如下:

import pandas as pd 

my_list = ["x d1","y d1","z d2","t d2"]

df = pd.DataFrame(my_list,columns=["col1"])

df2 = df["col1"].str.split(" ",expand = True)
df2.columns = ["col1","col2"]
grp = df2.groupby(["col2"])

result = []
for grp_name, data in grp:
  res =  grp_name +"(" + ",".join(list(data["col1"])) + ")"
  result.append(res)
print(result)
纯Python解决方案

无需依赖第三方库,用基础字典即可实现分组和格式化:

my_list = ["x d1","y d1","z d2","t d2"]

group_dict = {}
for item in my_list:
    prefix, suffix = item.split()
    if suffix not in group_dict:
        group_dict[suffix] = []
    group_dict[suffix].append(prefix)

result = [f"{key}({','.join(values)})" for key, values in group_dict.items()]
print(result)
# 输出: ['d1(x,y)', 'd2(z,t)']

方案说明

  1. 分组存储:遍历输入列表,将每个元素拆分为前缀和后缀,用字典的键保存后缀,值保存对应前缀的集合。
  2. 结果格式化:通过列表推导式,遍历字典的键值对,按照指定格式拼接字符串,生成最终结果列表。

注:Python 3.7及以上版本的普通字典默认保留插入顺序,因此结果中元素的顺序会和原输入中后缀首次出现的顺序一致;如果需要兼容更低版本,可以使用collections.OrderedDict替代普通字典。

内容的提问来源于stack exchange,提问作者Shck Tchamna

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 23:16:13