分块到子列表的列表列表

2024-03-28 20:20:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个列表作为数据容器。我把我所有的调试代码都放在控制台里了,所有的东西都放在控制台里,这样我就可以继续下去了,这就解释了一些多余的print语句。你知道吗

它是通过遍历并生成一个长列表创建的,如下所示:

[['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'而不是'阿森纳',这是我所期望的。你知道吗

当然,另一个原因是,我不能对列表元素运行逻辑操作-什么是分割长列表的最佳方法,或者阻止这种情况发生?你知道吗

如果您需要完整的代码(为了简洁起见,这里没有包含),那么它就是here——我怀疑这个问题是由本文中的问题引起的。你知道吗

回答这个问题的人建议使用字典作为更好的数据容器-我对列表结构非常满意,我觉得(作为一个新手)我想做的事情要简单一点-这些数据结构的大小总是一致的,所以我不想更改数据类型,除非我真的不得不更改。我认为这是一件有帮助的事情,我将长期研究。你知道吗


Tags: the数据代码pos元素列表sizehere
1条回答
网友
1楼 · 发布于 2024-03-28 20:20:28

^{}获取字符串的表示形式。i、 电子邮件:

print repr("""Hello!
this is a test string
yay.""")

退货:

'Hello!\nthis is a test string\nyay.'

在您的代码中,它将列表转换为字符串,这就是为什么在执行[0][2]操作时会得到一个字符,而不是预期的字符。你知道吗

不需要在代码中调用它。只需正常地附加检查列表。你知道吗

相关问题 更多 >