如何用Python编写‘集合批量操作’?新手求助优化Pythonic写法
问题解决与优化
首先,你的代码有两处需要调整的地方:
1. 集合创建的语法错误
set('a', 'b', 'c') 写法不符合Python规则,set()构造函数仅接受一个可迭代对象作为参数。正确的集合创建方式有两种:
- 用列表作为参数传入:
a_set = set(['a', 'b', 'c']) - 直接使用集合字面量(更简洁直观):
a_set = {'a', 'b', 'c'}
2. Pythonic风格的正确写法
修正集合创建后,你尝试的生成器表达式写法可以正常运行,另外推荐更符合Python习惯的集合推导式写法:
方法一:生成器表达式传入set()
a_set = {'a', 'b', 'c'} result_set = set('prefix-' + c for c in a_set)
方法二:集合推导式(推荐)
a_set = {'a', 'b', 'c'} result_set = {'prefix-' + c for c in a_set}
两种写法都能得到预期结果:{'prefix-a', 'prefix-b', 'prefix-c'},完全替代原有的循环+add()的写法。
内容的提问来源于stack exchange,提问作者Leon
相关产品推荐
相关产品推荐

