大家日常调用set集合去重时可能没太有注意,但却可能导致你以为的程序出bug。比如说创建决策树的时候出现声音粗犷的小姐姐和声音细微的小姐姐ー( ̄~ ̄)ξ:
{'声音': {'粗': {'头发': {'短': '男'}}}}
或者
{'声音': {'细': '女'}}
或者
{'声音': {'粗': {'头发': {'长': '女'}}}}
或者举一个简单的例子🌰:
a = ['长', '短', '短', '长', '短', '短', '长', '长']
b = ['粗', '粗', '粗', '细', '细', '粗', '粗', '粗']
print("a=", set(a))
print("b=", set(b))
大家重复执行这个程序就会发现,会出现以下两个结果
a= {'长', '短'}
b= {'细', '粗'}
或者是
a= {'短', '长'}
b= {'细', '粗'}
亦或是
a= {'长', '短'}
b= {'粗', '细'}
还有可能是
a= {'短', '长'}
b= {'粗', '细'}
这四种情况都会出现
因为利用set创建集合(数学定义了集合不能有重复元素)时,set 集合的 pop 方法会对集合进行无序的排列,然后将这个无序排列集合的左面第一个元素进行删除(来自Python3 集合 | 菜鸟教程 (runoob.com))
所以大家有时候也要注意使用Python中set集合去重时可能出现的问题,也可以采用循环等方式去重,以免出现摸不着头脑的现象。程序的事,怎么能让程序员背锅呢─=≡Σ((( つ•̀ω•́)つ动感光波哔哔哔!!