已有列表
list1= [{"V":"S001"}, {"V": "S002"}, {"VI": "S001"}, {"VI": "S005"}, {"VII":"S005"}, {"V":"S009"},{"VIII":"S007"}]
a=set()
for i in list1:
s = list(i.values())[0]
a.add(s)
print(a)
你用pdb也好,pycharm也行,断点看看每个阶段变量的值就行了;a收集的是单个元素不是列表
源码 <class set>.<func add> : Add an element to a set.
i.values()
返回一个dict_values类型变量;
list(i.values())
把它转换成list列表["S001"]
,只不过是只有一个元素的列表;
为了从这个只有一个元素的列表里取出来值,所以要加[0]
。
断点也好,输出查看也好,都能看出来问题所在。
因为 list(i.values()) 是类似 ['S001'] 的列表。
你可以理解为i.values()获取到的值是一个特殊的列表。