sorted的结果是列表

这段代码展示了如何使用Python的collections.defaultdict和sorted函数对给定的字符串列表进行分组,使得具有相同字母排序的字符串归为一类。关键在于将排序后的字符列表转换为不可变字符串作为字典键。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

49. 字母异位词分组

class Solution:
    def groupAnagrams(self, strs: List[str]) -> List[List[str]]:
        hashtable = collections.defaultdict(list)

        for st in strs:
            key = "".join(sorted(st))
            hashtable[key].append(st)
        return list(hashtable.values())

在这段代码中,key不能直接等于sorted(st),因为sorted(st)返回的是一个字符列表,而不是字符串。在Python中,列表不能作为字典的键,因为列表是可变的,而字典的键必须是不可变的。

"".join(sorted(st))这行代码的作用是将sorted(st)返回的字符列表连接成一个字符串。"".join()函数会使用空字符串""作为分隔符,将列表中的所有元素连接成一个字符串。因此,"".join(sorted(st))的结果是一个字符串,可以作为字典的键。

例如,如果st"eat",那么sorted(st)的结果是['a', 'e', 't']"".join(sorted(st))的结果是"aet"

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值