如何将指定Python字典转换为元组集合?
解决方案
可以实现,不过你之前的代码存在问题——当字典值为字符串时,for v in values会把字符串拆成单个字符迭代,导致生成大量(k, 单个字符)的元组,不符合预期。
正确的做法是区分值的类型:如果是列表,就把键和列表元素合并成一个元组;如果是单个字符串,就生成包含键和该字符串的二元组。
代码实现
d = {'x': '999999999', 'y': ['888888888', '333333333'], 'z': '666666666', 'p': ['0000000', '11111111', '22222222'] } # 方案1:循环处理 x_set = set() for key, value in d.items(): if isinstance(value, list): x_set.add( (key,) + tuple(value) ) else: x_set.add( (key, value) ) # 方案2:集合推导式(更简洁) x_set = { (key,) + tuple(value) if isinstance(value, list) else (key, value) for key, value in d.items() } print(x_set)
运行结果
输出的集合会是:
{('x', '999999999'), ('y', '888888888', '333333333'), ('z', '666666666'), ('p', '0000000', '11111111', '22222222')}
内容的提问来源于stack exchange,提问作者BouhaaCode
相关产品推荐
相关产品推荐

