我有一個數據庫查詢返回三組數據。它採用這種格式。結合不同長度的多個列表中的數據
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')' –