使用Python动态生成变量并且赋值,实现数据分组问题

前言

在处理一些爬取下来的数据时,存在分组问题,也就说,原来的数据集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

是不是很简单啊
这里写图片描述

参考文献:
[1] https://www.cnblogs.com/zzbo/p/3391453.html

猜你喜欢

转载自blog.csdn.net/sinat_33455447/article/details/80579253