我有一个Excel工作表,我想创建一个字典值的单元格值列表与细胞列是关键。让说,电子表格有看起来像数据,Pythonic的方式来创建一个Excel列字段的字典
A B C (columns)
1 2
3 4
5 f
我想要一个字典,看起来像,
cbyc = {'A': [1,3,5]; 'B':[2,4,f]; 'C';[None, None, None]}
我用下面的代码
import openpyxl as oxl
wb = oxl.load_workbook('myxlworkbook.xlsx')
sheet = wb.get_sheet_by_name('Sheet1')
allcells = sheet.get_cell_collection()
cbyc = {}
for c in allcells:
if c.value is not None:
if c.column not in cbyc.keys():
cbyc[c.column] = [c.value]
else:
cbyc[c.column].append(c.value)
这项工作做这,但我相信有一个更有效的方式来创建此词典与if .. else逻辑
是否有一个 更好的方法?也许有什么东西在openpyxl可以给出这样的一个列表
看起来像你需要'cbyc = collections.defaultdict(list)' –
'如果c.column不在cbyc.keys()'中就太可怕了。 –
我正在重新打开,因为Rob答案没有使用任何defaultdict或setdefault。 –