3 回答
TA贡献1874条经验 获得超12个赞
您可以使用嵌套集合理解:
d = {'allowed_langs': [{'langs': ['java', 'golang', 'python']}, {'langs': ['java', 'golang', 'csharp']}]}
new_d = list({i for b in d['allowed_langs'] for i in b.get('langs', [])})
输出:
['java', 'python', 'golang', 'csharp']
TA贡献1880条经验 获得超4个赞
使用set.add
代替set.update
。set.add
是set.update
为list.append
是list.extend
。
set.add
将单个元素添加到集合中,set.update
将一个可迭代对象作为参数并添加该可迭代对象中的每个元素。字符串是可迭代的,其中元素是单个字符......
TA贡献1852条经验 获得超7个赞
只需更改代码的更新部分(第 3 行)。
for allowed_langss in d["allowed_langs"]:
for each in allowed_langss["langs"]:
allowed_languages.update({each})
Python 的 set.update 将字符串拆分为其组成字符。您可以通过要求 python 向现有集合添加一个集合来克服这个问题。
如果您希望将集合作为列表:
[i for i in allowed_languages]
添加回答
举报