如何从双元素集合中选取不等于first_variable的另一个变量
实现方案
因为已经明确集合固定只有2个元素,有几种简单的实现方式:
- 索引计算法(最高效,无额外冗余操作)
先拿到选中元素的索引,直接取另一个索引的元素即可:other_variable = collection[1 - collection.index(first_variable)] - 列表过滤法(写法最直观,可读性高)
直接过滤掉已经选中的元素,取剩下的第一个结果:other_variable = [x for x in collection if x != first_variable][0] - 临时列表移除法(适合需要保留原始列表的场景,不会修改原
collection)temp_col = collection.copy() temp_col.remove(first_variable) other_variable = temp_col[0]
注意事项
如果你的集合里两个元素的值是完全相等的(比如a = 3, b = 3),上面的方法默认会返回剩下的同值元素。如果你的需求是要区分不同的变量对象而非值,需要把判断逻辑改成比对对象ID:
other_variable = [x for x in collection if id(x) != id(first_variable)][0]
内容的提问来源于stack exchange,提问作者lonyen11
相关产品推荐
相关产品推荐

