我有一个数据库查询返回三组数据。它采用这种格式。结合不同长度的多个列表中的数据
year = (('Adison', '355', 4), ('windsor windham', '455', 6), ('windham', '655', 2), ('btown', '233', 5))
month = (('Adison', '355', 2), ('windham', '655', 1))
week = (('btown', '233', 8), ('Adison', '355', 9))
年份列表始终是最长和最多的值。我需要从月份和星期列表中的每个元素中取出最后一个值,并将它们附加到年份列表中的适当位置,基于城镇。
如果没有在一个月或一周对应的值,我需要追加0。理想的情况下使它看起来像这样:
year = (('Adison', '355', 4, 2, 9), ('windsor windham', '455', 6, 0, 0), ('windham', '655', 2, 1, 0), ('btown', '233', 5, 0, 8))
我试图把两个列表中的for循环和使用if in
有条件检查值,但我认为我忽略了一些东西,并且正在获取索引错误。我试过这样的事情:
for each in year:
for part in month:
if part in each:
each.append(part[-1])
else:
each.append(0)
我知道必须有一个更好的方法,并且实际上可以做到这一点。是否有我应该查看的工具或模块?我曾与zip
玩过,但因为他们长度不一样,所以我遇到了麻烦。谢谢!
编辑
我明白,我有元组上面,在我的代码转换所有这些修改之前列出的对象。另外我对Python的3.6
你在哪个python版本上? –
我正在使用3.6。 – Joe
Python元组是不可变的,所以他们没有'.append'方法。你必须做一些像'new_tuple = old_tuple +('more','data')' –