Hi people.
I am having trouble printing out a list of items with n items per line. Here is my current code.

def printList(lst, lineCount):
    # given a list of items, print it out in 
    # lineCount items per line.
    count=0
    strList= '[ '
    
    for element in lst:
        strList = strList+ str(element) + ' '
        count= count +1
        if count%lineCount==0:
            strList = strList + '\n'
            

    strList=strList+ ' ]'
    return strList

Right now, the if statement is supposed to check if the list reaches the lineCount element in list. Then. I add the '\n' New line escape sequence to the list.

But right now the list is only printing the '\n' mark. What happened?

This is how I would do, maybe you can use it to debug your solution:

def list_str(lst, per_line):
    # given a list of items, 
    # return per_line items per line.
    start = '['
    while len(lst) > per_line:
        start += str(lst[:per_line])[1:-1]+','
        yield start
        start =''
        lst =lst[per_line:]
    yield start + str(lst[:per_line])[1:-1]+']'

def print_count(lst, count):
    print '\n'.join(list_str(lst, count))

print_count(range(30),5)

The code works fine for me on Slackware Linux. What are you using for input, and what output do you get?

solved.

Just look for close thread button and use it to close the thread.;)

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.