Python中文
首页
教程
问答
标签
搜索
登录
注册
有没有一种巧妙的方法来获得一组差异的“剩余”?
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我遇到了这个问题:</p> <p>给定一个可数<code>i</code>,两个不相交的集合<code>a</code>和<code>b</code>(其中通常<code>a</code>和<code>b</code>包含的元素远远多于<code>i</code>)从<code>a</code>中删除在<code>i</code>中找到的所有元素,并将<code>a</code>中不被^<cd2>}共享的所有元素添加到<code>b</code></p> <p>例如:</p> <pre><code>i = [0, 3] a = {1, 2, 3, 4} b = {5, 6, 7, 8} </code></pre> <p>应该导致</p> <pre><code>a = {1, 2, 4} b = {0, 5, 6, 7, 8} </code></pre> <p><a href="https://i.stack.imgur.com/mazx4.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/mazx4.png" alt="Venn diagram of the example"/></a></p> <p>根据该图,灰色子集应为空。操作完成后,我希望浅蓝色子集连接到<code>b</code>,黄色重叠从<code>a</code>中删除</p> <p>为了解决这个问题,我编写了以下Python函数:</p> <pre><code>def foo(i, a, b): set_i = set(i) b |= set_i - a a -= set_i </code></pre> <p>这是可行的,但它不是很漂亮,仍然会做两次事情(不同的是<code>a</code>和<code>set_i</code>)</p> <p>哪种方式更有效</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>尝试:</p> <pre class="lang-py prettyprint-override"><code>def foo(i, a, b): a -= set(i) b |= a </code></pre>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
如何合并多个PDF文件?
4 回答
如何合并多个xarray数据变量及其坐标?
3 回答
如何合并多个列中具有重复值的行
3 回答
如何合并多个唯一id
8 回答
如何合并多个图纸并使用图纸名称的名称重命名列名?
4 回答
如何合并多个字典并添加同一个键的值?(Python)
3 回答
如何合并多个搜索结果文件(pkl)以将它们全部打印在一起?
4 回答
如何合并多个数据帧
9 回答
如何合并多个数据帧并使用Pandas为假人添加列?
9 回答
如何合并多个数据帧并按时间戳排序
6 回答
如何合并多个数据帧的列表并用另一个lis标记每列
6 回答
如何合并多个数据框中的列
8 回答
如何合并多个文件?
7 回答
如何合并多个查询集?
8 回答
如何合并多个绘图?
10 回答
如何合并多个词典
6 回答
如何合并多个输入数据集(数据帧)?
1 回答
如何合并多条记录中拆分的文本行
5 回答
如何合并多索引列datafram
4 回答
如何合并多级(即多索引)数据帧?
10 回答