本文从集合论的角度理解集合嵌套,并例举其在Python里的用法。
集合与集合间的关系:
- 子集:若集合A中的每个元素都是B的元素,则A是B的子集。
- 真子集:A是B的子集且B中至少有一个元素不属于A,则A是B的真子集。
- 元素与集合的区分:元素不带花括号,集合带花括号。
- 元素与集合是从属关系,如x ∈ A;而集合与集合间是包含关系,如A⊆B。但集合与集合之间只能有包含关系的前提是:集合位于同一层次。
- 集合嵌套:当集合A里的元素由集合B、C构成,则B ∈ A是正确的(将集合里的集合看成元素,则其可与父集合有从属关系)。
Python——多层嵌套list的递归处理方法
Q:用Python处理一个多层嵌套list
1 | ['and', 'B', ['not', 'A'],[1,2,1,[2,1],[1,1,[2,2,1]]], ['not', 'A', 'A'],['or', 'A', 'B' ,'A'] , 'B'] |
处理需求:
- 展开成一层
- 删除重复元素,包括重复的list
1 | def onelist(ll): |
output:
1 | ['and', 'B', ['not', 'A'], [1, 2, [2, 1], [1, [2, 1]]], ['or', 'A', 'B']] |