澄清Python代码片段? (一次只打印一些列表)

时间:2013-10-04 16:02:50

标签: python list if-statement for-loop

我的打印机为长列表提供了这段代码,因此Python只会在提示用户按Enter键之前在列表中显示x(在本例中为9)项。我已经把它用于我的一些列表,但其余的它将以不均匀的数量打印,有时根本不打印任何项目。她从来没有解释过,她只是把它给了我们,所以我只需要澄清它的作用,这样我就可以有效地将它应用到其他列表中。到目前为止我所做的就是将the_list更改为我正在使用的那个,然后将print(the_list)或我需要的任何内容打印出来。

for ind in range (0,len(the_list)):
     if ind%10==9:
         input("Press ENTER to continue")
     print("information")

此外,即使这可能不是最有效的方式,这也是她给我的方式所以我认为这是她希望我们使用的方式。为了将来的参考,我不介意你是否完全给我一个不同的代码,但我需要知道如何将这个应用于这个特定的项目。提前谢谢。

1 个答案:

答案 0 :(得分:0)

这可能是预期的。它不打印9 ,它打印9 。每个项目可以是一个空字符串(不会打印任何内容),几个单词,整个文本屏幕。

示例:

list1 = [chr(a+65) for a in range(26)]
list2 = [chr(a+65)*300 for a in range(26)]

In [287]: list1[0]
'a'

In [288]: list2[0]
'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'

第一个只是创建一个从A到Z的字符数组。 第二个,为每个字母创建一个长列表(300个字符)。 由于您的控制台可能只有80个字符,因此仅打印一行就会将屏幕包裹3次。所以打印list2将占用屏幕行数量的4倍而不是list1。

您的代码没有任何问题,但更好的方法是将表示形式打印到字符串中,逐行拆分,然后一次显示一些屏幕行,而不是项目。不太一样,但IPython的%page magic做的非常相似;它打印对象的表示,但允许您翻阅它。