'Output will not become a string from a list

import os
import random

file = open('getty.txt')
filetext = file.read()


def getline(words,length):
    ans=[]
    total=0
    while (length>total) and 0 != len(words):
        word=words.pop(0)
        total += len(word)+1 #add 1 for the space
        ans.append(word)
 #now we are one word too long
    if total > length:
        words.insert(0,ans.pop())
    return ans




def printPara(words,length):
    line = []
    spaces = []
    while len(words) != 0:
        line.append(getline(words, length))
    for z in range(0,len(line)):
        for i in range(0,len(line[z])):
            spaces = [[1] * len(line[i]) for i in range (len(line))]
    for p in range (0,len(spaces)):
        spaces[p][len(spaces[p])-1] = 0
    if len(words) + len(spaces) != 0:
        addSpace(line,spaces,length)
        printLine(line,spaces)
    else:
        printLine(line,spaces)
        
    
def addSpace(line,spaces,length):
    totalInt = 0
    for i in range (0, len(line)):
        totalInt = (len(spaces[i])-2) + len(line[i])
    while length < totalInt:
        num = random.randint(0, len(spaces) - 2)
        spaces[num] += 1
    return spaces
    
def printLine(line, spaces):
    for i in range (len(line)):
        print(str(line[i]) + (' ' * len(spaces[i])))
    
    
def main():
    length = 75
    textparagraph = filetext.split("\n\n")
    para = [0] * len(textparagraph)
    for i in range (0, len(textparagraph)):
        para[i] = textparagraph[i]
    words = [[0] * len(textparagraph) for i in range(len(para))]
    for b in range (0,len(para)):
        words[b] = para[b].split()
    for z in range (0, len(para)):
        printPara(words[z],length)
        
main()

My code outputs only lists of the separate lines and will not concatenate the two lists of words and spaces. How would I get it to output correctly? Some exampes of output.

['Four', 'score', 'and', 'seven', 'years', 'ago', 'our', 'fathers', 'brought', 'forth', 'on', 'this']
['continent,', 'a', 'new', 'nation,', 'conceived', 'in', 'Liberty,', 'and', 'dedicated', 'to', 'the']
['proposition', 'that', 'all', 'men', 'are', 'created', 'equal.']
['Now', 'we', 'are', 'engaged', 'in', 'a', 'great', 'civil', 'war,', 'testing', 'whether', 'that', 'nation,', 'or']
['any', 'nation', 'so', 'conceived', 'and', 'so', 'dedicated,', 'can', 'long', 'endure.', 'We', 'are', 'met', 'on', 'a']

Expected output "Four score and seven years ago..."



Solution 1:[1]

You can use

" ".join(["hello", "world"])

and you'll get

"hello world"

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 drawbu