亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

用pyqt5中的表頭和每一行構造一個包含多個字典的列表;

用pyqt5中的表頭和每一行構造一個包含多個字典的列表;

泛舟湖上清波郎朗 2022-06-28 10:10:54
我在名為“headers”的列表中獲取了列標題名稱,在名為“row data”的列表中獲取了每一行數據,當我將兩個轉換為時,list我dict沒有得到所有這些值,而是只得到唯一的鍵值,如何獲取所有重復值。headers=['Filter1', 'Filter2', 'Filter3', 'SchemaName1', 'Filter1', 'Filter2', 'Filter3', 'SchemaName1', 'Filter1', 'Filter2', 'Filter3', 'SchemaName1', 'Filter1', 'Filter2', 'Filter3', 'SchemaName1', 'Filter1', 'Filter2', 'Filter3', 'SchemaName1']rowdata=['US_CO', 'US_COM', 'US_DO', 'public', 'US_CO', 'US_COM', 'US_DO', 'publicss', '', '', '', '', '', '', '', '', '', '', '', '']def savedata_click(self):    headers = []    rowdata = []    for row in range(self.table.rowCount()):        for column in range(self.table.columnCount()):            item = self.table.item(row, column)            if item is not None:                rowdata.append(item.text())            else:                rowdata.append('')            header = self.table.horizontalHeaderItem(column)            if header is not None:                headers.append(header.text())            else:                headers.append("Column " + str(column))     res= dict(zip(headers,rowdata))     print(res)output:{'Filter1':  '', 'Filter2':  '', 'Filter3':  '', 'SchemaName1':  ''}expected:[{'Filter1':  'US_CO', 'Filter2':  'US_COM', 'Filter3':  'US_DO', 'SchemaName1':  'public'},{'Filter1':  'US_CO', 'Filter2':  'US_COM', 'Filter3':  'US_DO', 'SchemaName1':  'publicss'},{'Filter1':  '', 'Filter2':  '', 'Filter3':  '', 'SchemaName1':  ''},{'Filter1':  '', 'Filter2':  '', 'Filter3':  '', 'SchemaName1':  ''}]
查看完整描述

1 回答

?
慕哥6287543

TA貢獻1831條經驗 獲得超10個贊

嘗試這個,


headers=['Filter1', 'Filter2', 'Filter3', 'SchemaName1', 'Filter1', 'Filter2', 'Filter3', 'SchemaName1', 'Filter1', 'Filter2', 'Filter3', 'SchemaName1', 'Filter1', 'Filter2', 'Filter3', 'SchemaName1', 'Filter1', 'Filter2', 'Filter3', 'SchemaName1']

rowdata=['US_CO', 'US_COM', 'US_DO', 'public', 'US_CO', 'US_COM', 'US_DO', 'publicss', '', '', '', '', '', '', '', '', '', '', '', '']

>>> final_list = []      

>>> header_length = 4 # Number of columns

>>> _splitted_dict_list = [{k:v} for k,v in zip(headers, rowdata)]           

>>> for v in range(0, len(_splitted_dict_list), header_length):

    final_list.append({nk:nv for nested_dict in _splitted_dict_list[v:v+4] for nk,nv in nested_dict.items()})

輸出:


>>> final_list


[{'Filter1': 'US_CO','Filter2': 'US_COM','Filter3': 'US_DO','SchemaName1': 'public'},

 {'Filter1': 'US_CO','Filter2': 'US_COM','Filter3': 'US_DO','SchemaName1': 'publicss'},

 {'Filter1': '', 'Filter2': '', 'Filter3': '', 'SchemaName1': ''},

 {'Filter1': '', 'Filter2': '', 'Filter3': '', 'SchemaName1': ''},

 {'Filter1': '', 'Filter2': '', 'Filter3': '', 'SchemaName1': ''}]


查看完整回答
反對 回復 2022-06-28
  • 1 回答
  • 0 關注
  • 153 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號