Python,zip和dict,快速映射

    def get_excel_data(self):
        print('------正在批量读取测试用例数据------')
        sheetNames = self.opExcel.get_sheet_names()
        print("获取所有的sheet页的名字:{}".format(sheetNames))
        testData = []
        for name in sheetNames:
            data = self.opExcel.get_data_by_name(name)
            titleName = data.row_values(0)  # 获取到第一行,这个第一样是标题,表头
            print(titleName)
            # rowData = dict.fromkeys(titleName,'')
            rows = data.nrows
            for row in range(1, rows):  # 为什么是从1,因为0是表头,
                print(zip(titleName, data.row_values(row)))
                print(dict(zip(titleName, data.row_values(row))))
                testData.append(dict(zip(titleName, data.row_values(row))))
        print(f'成功读取到本次要执行的全部用例共计{len(testData) + 1}条')
        print(testData)
        return testData

获取到表头,
然后获取到每行的数据,
这两个可迭代对象使用zip变成一个列表,
然后使用dict把这个zip之后的对象,变成key和value,
>>> a = [1,2,3]
>>> b = [4,5,6]
>>> c = [4,5,6,7,8]
>>> zipped = zip(a,b)     # 返回一个对象
>>> zipped
<zip object at 0x103abc288>
>>> list(zipped)  # list() 转换为列表
[(1, 4), (2, 5), (3, 6)]

posted @ 2022-09-13 14:41  技术改变命运Andy  阅读(95)  评论(0编辑  收藏  举报