如何在x行中分隔列表

时间:2015-10-22 05:09:31

标签: python python-3.x

我需要帮助分隔x行(由用户输入)中的列表。我似乎无法这样做。

这是我到目前为止所拥有的:

# List of random integers between 0-100
def createGrades(amt): 
    import random
    myGrades = random.sample(range(0,100), amt)
    return myGrades


# To list myGrades neatly in rows of 6
myGrades = createGrades(10)
def printRows(myGrades, amtPerRow):
    n=0
    for i in range(0+n, amtPerRow+n):
    print(myGrades, end='\n')  #Stuck at this part

我该如何使这项工作?我尝试在范围内做一个i,但它只是吐出了myGrades列表的amtPerRow。

谢谢!

2 个答案:

答案 0 :(得分:1)

for i in range(1+len(myGrades)//6):
    print myGrades[i*6:(i+1)*6]

答案 1 :(得分:1)

这里有很多问题。第一个是print语句没有缩进(因此实际上不在你的for循环中)。其次,范围没有正确指定。如果amtPerRow为6,则范围为(0,6),如上所述,只会在列表中打印出0-6元素。

如果我正确理解您的问题,您需要打印每个年级,但每6个等级添加换行符。这是一个模运算。

这是一个将行打印为CSV(以逗号分隔的值)的示例,因为我不知道您在项目之间想要的分隔符 - 它不是在你的问题中指明。

def printRows(myGrades, amtPerRow):
    for i, grade in enumerate(myGrades):
        print(grade, end="")
        if (i + 1) % amtPerRow == 0:
            print("\n", end="")
        else:
            print(",", end="")

grades = [82, 34, 81, 79, 31, 18, 7, 67, 13, 25]给了我:

>>> printRows(grades, 6)
82,34,81,79,31,18
7,67,13,25,

我假设Python 3,给出你的打印语句,但如果没有,你可以使用:

from ___future__ import print_function

在这里获取打印功能。或者,使用Python 2中的逗号语法(print grade,)在每个print语句后都没有换行符。