如何将字典中多值键的取值提取为长度大于1的非嵌套列表?
解决字典中集合值转元素列表的问题
嘿,这个问题其实很好解决,核心是要区分「把集合作为单个元素放进列表」和「把集合的元素逐个提取成列表」这两种操作~
先修正下你的字典语法(键a要加引号,而且别用dict当变量名,这是Python的内置类型,容易引发冲突):
my_dict = {'a': {'b', 'c', 'd'}}
为什么之前得到的是[{'b', 'c', 'd'}]?
你之前的操作应该是直接把字典对应的值塞进列表里,比如:
wrong_list = [my_dict['a']]
这时候列表里只装了整个集合对象,所以长度是1,内容就是那个集合本身。
正确的实现方式
要把集合里的元素提取成列表,直接用Python内置的list()函数转换集合就行:
correct_list = list(my_dict['a']) print(correct_list) # 输出类似 ['b', 'c', 'd'](集合是无序的,顺序可能有变动)
list()函数会遍历集合中的每一个元素,把它们依次添加到新列表中,这样得到的列表长度就等于集合的元素个数啦。
额外小技巧:如果需要固定顺序
因为集合是无序的,转换后的列表顺序可能不固定。如果想要元素按固定顺序排列,可以用sorted()函数,它会返回排序后的列表:
sorted_list = sorted(my_dict['a']) print(sorted_list) # 稳定输出 ['b', 'c', 'd']
内容的提问来源于stack exchange,提问作者noob
相关产品推荐
相关产品推荐

