我有一個列表我用作數據容器。我已經把所有的調試代碼都留下了,所有的東西都放在控制檯上,這樣我就可以通過它了,這解釋了一些更多的冗餘打印語句。列表分塊成子列表
它是由通過迭代和使一個長列表,看起來像創建:
[['Arsenal', 2.47, 1.2, 0.89, 'Chelsea', 2.15, 0.8, 1.21,...
的子列表都是均勻的長度(9種元素)的,所以就用以下至塊它,這是taken from here:
# This function should chunk the 'file', as when we run the above code,
# we'll end up with one incredibly long list that contains every team on the same line
def chunker(seq, size):
return (seq[pos:pos + size] for pos in xrange(0, len(seq), size))
for group in chunker(league_stats, 9):
print repr(group)
final_stats.append(repr(group))
print "printing final stats"
print final_stats
print "and here's a line break"
然後,它應該是這樣的:
[['Arsenal', 2.47, 1.2, 0.89], ['Chelsea', 2.15, 0.8, 1.21]...]
但是,如果我打印出來它顯示爲:
["['Arsenal', 2.47, 1.2, 0.89]", ['Chelsea', 2.15, 0.8, 1.21|]..."]
如果我遍歷它,它似乎顯示爲預期
所以這似乎已經取得了每整個子列表的字符串,而不是列表,對嗎?這有兩個奇怪的敲門聲 - 例如,如果我使用final_stats [0] [2]訪問元素,它會給我一個'A'而不是'Arsenal',這是我期望的。
另一方面,當然是我不能對列表元素運行邏輯操作 - 分塊長列表或阻止這種情況發生的最佳方式是什麼?
如果您需要完整的代碼(這裏不包括簡潔),那麼它是here - 我懷疑這個問題是無意中造成的,在這篇文章中的問題。
有人在這個答案中建議使用字典作爲更好的數據容器 - 我對列表結構感到非常滿意,並且它對我想要做的事情(對我來說是一個新手)感覺更簡單 - 這些數據結構總是統一的大小,所以我不想改變數據類型,除非我真的必須。我認爲這是一個有益的事情,我會長期考慮。
Muh。很簡單。就這樣,兩個問題得到解答。 – Withnail
@ChrisCampbell;) – TerryA
我會在7分鐘內接受! – Withnail