gpt4 book ai didi

python - Python 中的字符串压缩

转载 作者:行者123 更新时间:2023-12-02 15:43:33 26 4
gpt4 key购买 nike

我有以下输入:

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

并想将其转换为:

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

我不得不使用蛮力,并且还不得不调用 pandas 来救援,因为我没有找到任何方法可以在普通/普通 python 中做到这一点。请问还有什么办法可以解决这个问题吗?

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)

最佳答案

  1. 该代码定义了一个空字典。
  2. 然后,它会迭代列表中的每个项目,并使用 split() 方法将项目拆分为
  3. 然后使用 setdefault()方法将keyvalue添加到空字典中。如果已作为存在于字典中,则会将附加到该值的现有键列表中。如果在字典中不作为键存在,它会创建一个新的键值对,以该值作为键,并将该键作为新列表中的第一个元素。
  4. 最后,列表推导式迭代字典中的项目,并使用 join() 方法为每个键值对创建一个字符串,将值列表中的键连接成单个字符串。
result = {}

for item in my_list:
key, value = item.split()
result.setdefault(value, []).append(key)

output = [f"{k}({', '.join(v)})" for k, v in result.items()]
print(output)

['d1(x, y)', 'd2(z, t)']

关于python - Python 中的字符串压缩,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75192135/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com