将一段序列 排序,去重,以列表和字典形式打印

发布于 2022-09-05 23:54:34 字数 245 浏览 6 评论 0

问题:将l = '0:13 1:9 2:14 4:12 3:19 3:25 3:19 3:14'进行去重和排序

想要的列表为:['0:13', '1:9', '2:14', '3:14', '3:19', '3:25', '4:12']
想要的字典为:{'0': '0:13', '1': '1:9', '2': '2:14', '3': '3:14,3:19,3:25', '4': '4:12'}

欢迎大家来指点
万分感谢!!!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

稀香 2022-09-12 23:54:34

split 分割
set 去重
list 列表
sort 排序
enumerate 索引 值
dict 字典

乄_柒ぐ汐 2022-09-12 23:54:34
    from collections import defaultdict
    
    
    l = '0:13 1:9 2:14 4:12 3:19 3:25 3:19 3:14'
    a_list = []
    l_dict = defaultdict(lambda: set())
    a_dict = {}
    for i in l.split(" "):
        l_dict[int(i.split(":")[0])].add(int(i.split(":")[1]))
    for n in sorted(l_dict.items(), key=lambda x: x[0]):
        tmp_l = []
        for m in sorted(n[1]):
            tmp_l.append("{}:{}".format(n[0], m))
        a_list += tmp_l
        a_dict[str(n[0])] = ",".join(tmp_l)
蓬勃野心 2022-09-12 23:54:34

列表:

list1 = l.split(' ')
list1 = list(set(list1))  #去重
list1.sort(key=lambda x:x[0]) #排序

字典:

from collections import defaultdict
d = defaultdict(list)
for i in list1:
    d[i[0]].append(i)
for index, items in d.items():
    d[index] = ",".join(items)
安人多梦 2022-09-12 23:54:34
l.split()
{str(k):v for k, v in enumerate(l.split())}
不打扰别人 2022-09-12 23:54:34

试试

print sorted(list(set(l.split(' '))),key=lambda x:x.split(':')[0])
print dict((i.split(':')[0],i.split(':')[1]) for i in list1)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文