请教一下!请问怎么用Python让此图片中的列表每一个元素前2位相同的串接最后1位字符,例如:图中有元素前2位为”03”共有4个,想让最后1位字符串接起来,结果就是让原列表为[‘03:A’,‘03:B’,‘03:C’,‘03:D’]最终通过代码变成[‘03:A、B、C、D’]
l = ['01:C', '02:A', '03:A', '03:B', '03:C', '03:D']
d = dict()
for i in l:
k, v = i.split(":")
d.setdefault(k, list()).append(v)
new = list()
for k, v in d.items():
new.append(k+":"+"、".join(v))
print(new)
# ['01:C', '02:A', '03:A、B、C、D']
该回答引用chatgpt:
data = ['01:A', '02:B', '03:A', '03:B', '03:C', '03:D', '04:E', '04:F', '05:G']
# Create a dictionary to group elements with same first 2 characters
groups = {}
for item in data:
key = item[:2]
value = item[3:]
if key not in groups:
groups[key] = []
groups[key].append(value)
# Concatenate last characters of each group
result = []
for key, values in groups.items():
if len(values) > 1:
result.append(key + ':' + '、'.join(values))
else:
result.append(key + ':' + values[0])
print(result)
zzz = ['01:C','02:A','03:A','03:B','03:C']
zzz1 = [v.split(':') for v in zzz]
zzz2 = sorted({v[0] + ':' + '、'.join([u[1] for u in zzz1 if u[0]==v[0]]) for v in zzz1})