前言
在处理一些爬取下来的数据时,存在分组问题,也就说,原来的数据集A中有20个类别,那么按照一般的思维的第一反应来说,我们首先要创建20个列表,然后遍历整个爬下来的数据,做if判断或者case-switch。but,我们用的语言是python,python里是没有case-switch的,因此我们可以使用字典映射的方法来实现case-switch,具体实现代码如下:
def numbers_to_strings(argument):
switcher = {
0: "zero",
1: "one",
2: "two",
}
return switcher.get(argument, "nothing")
但是,当数据中的类别很多的,大概if和switch也救不了我们的代码的冗长度了,有没有更简单的方法呢?
思路
- 首先对数据的标签进行统计,得到类别的个数numCategory;
- 建立一个列表lableList,存放类别的数据;
- 使用for循环对lableList进行遍历,动态生成不同类别的数据,也就是说类别个数有20个,那么生成20个数组。
- 接下来就用两个for循环和一个if来判断每个带标签的数据data是属于对于的哪个list,最后使用append一下就好了。
代码
for num,lable in enumerate(lableList):
createVar['l'+str(num)]= []
for item in totalData:
itemLable = item.get(lableLevel)
for num in range(0,len(lableList)):
if itemLable==lableList[num]:
locals()['l'+str(num)].append(item)
break
是不是很简单啊