[英]Printing out the output in separate lines in python
我試圖在單獨的行中打印出最大路由的輸出。
代碼在這里:
def triangle(rows):
PrintingList = list()
for rownum in range (rows ):
PrintingList.append([])
newValues = map(int, raw_input().strip().split())
PrintingList[rownum] += newValues
return PrintingList
def routes(rows,current_row=0,start=0):
for i,num in enumerate(rows[current_row]):
if abs(i-start) > 1:
continue
if current_row == len(rows) - 1:
yield [num]
else:
for child in routes(rows,current_row+1,i):
yield [num] + child
testcases = int(raw_input())
output = []
for num in range(testcases):
rows= int(raw_input())
triangleinput = triangle(rows)
max_route = max(routes(triangleinput),key=sum)
output.append(sum(max_route))
print '\n'.join(output)
我嘗試了這個:
2
3
1
2 3
4 5 6
3
1
2 3
4 5 6
當我嘗試輸出該值時,我得到了:
print '\n'.join(output)
TypeError: sequence item 0: expected string, int found
如何改變呢? 需要一些指導...
嘗試這個:
print '\n'.join(map(str, output))
Python只能將字符串連接在一起,因此您應該先將int轉換為字符串。 這就是map(str, ...)
部分所做的。
@grc是正確的,但是您可以簡單地執行以下操作:不必使用換行符創建新的字符串:
for row in output:
print row
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.