首页 > 解决方案 > 需要帮助将字符串中的三角形转换为数组

问题描述

triangle = """
75
95 64
17 47 82
18 35 87 10
20 04 82 47 65
19 01 23 75 03 34
88 02 77 73 07 63 67
99 65 04 28 06 16 70 92
41 41 26 56 83 40 80 70 33
41 48 72 33 47 32 37 16 94 29
53 71 44 65 25 43 91 52 97 51 14
70 11 33 28 77 73 17 78 39 68 17 57
91 71 52 38 17 14 91 43 58 50 27 29 48
63 66 04 68 89 53 67 30 73 16 69 87 40 31
04 62 98 27 23 09 70 98 73 93 38 53 60 04 23"""

def return_triangle(triangle,n):
    arr_start = triangle.split()
    print(arr_start)
    current_row = 1
    start_index = current_row - 1
    max_index = start_index + current_row
    triangle_array = []
    while current_row <= rows:
        print('len arr_start',len(arr_start))
        temp_arr = []
        for i in range(start_index,max_index):
            temp_arr.append(arr_start[i])
        triangle_array.append([temp_arr])
        current_row += 1
        start_index += current_row - 1
        max_index = start_index + current_row
    return triangle_array

print(return_triangle(triangle))

here is my output 
[['63', '66', '04', '68', '89', '53', '67', '30', '73', '16', '69', '87', '40', '31']]
12
[['91', '71', '52', '38', '17', '14', '91', '43', '58', '50', '27', '29', '48']]
11
[['70', '11', '33', '28', '77', '73', '17', '78', '39', '68', '17', '57']]
10
[['53', '71', '44', '65', '25', '43', '91', '52', '97', '51', '14']]
9
[['41', '48', '72', '33', '47', '32', '37', '16', '94', '29']]
8
[['41', '41', '26', '56', '83', '40', '80', '70', '33']]
7
[['99', '65', '04', '28', '06', '16', '70', '92']]
6
[['88', '02', '77', '73', '07', '63', '67']]
5
[['19', '01', '23', '75', '03', '34']]
4
[['20', '04', '82', '47', '65']]
3
[['18', '35', '87', '10']]
2
[['17', '47', '82']]
1
[['95', '64']]
0
[['75']]
0

我起床到最后 n-2 行,但我无法打印最后 2 行我想知道如何做到这一点,而不会在我的循环中超出界限。现在,如果我看看我的预期输出应该是

[[04, 62, 98, 27, 23, 09, 70, 98, 73, 93, 38, 53, 60, 04, 23]] 13 [['63', '66', '04', '68 ','89','53','67','30','73','16','69','87','40','31']] 12 [['91', '71'、'52'、'38'、'17'、'14'、'91'、'43'、'58'、'50'、'27'、'29'、'48']] 11 [['70', '11', '33', '28', '77', '73', '17', '78', '39', '68', '17', '57'] ] 10 [['53','71','44','65','25','43','91','52','97','51','14']] 9 [['41', '48', '72', '33', '47','32', '37', '16', '94', '29']] 8 [['41', '41', '26', '56', '83', '40', '80' ', '70', '33']] 7 [['99', '65', '04', '28', '06', '16', '70', '92']] 6 [[ '88', '02', '77', '73', '07', '63', '67']] 5 [['19', '01', '23', '75', '03 ', '34']] 4 [['20', '04', '82', '47', '65']] 3 [['18', '35', '87', '10'] ] 2 [['17', '47', '82']] 1 [['95', '64']] 0 [['75']] 026', '56', '83', '40', '80', '70', '33']] 7 [['99', '65', '04', '28', '06' , '16', '70', '92']] 6 [['88', '02', '77', '73', '07', '63', '67']] 5 [[' 19', '01', '23', '75', '03', '34']] 4 [['20', '04', '82', '47', '65']] 3 [ ['18', '35', '87', '10']] 2 [['17', '47', '82']] 1 [['95', '64']] 0 [[' 75']] 026', '56', '83', '40', '80', '70', '33']] 7 [['99', '65', '04', '28', '06' , '16', '70', '92']] 6 [['88', '02', '77', '73', '07', '63', '67']] 5 [[' 19', '01', '23', '75', '03', '34']] 4 [['20', '04', '82', '47', '65']] 3 [ ['18', '35', '87', '10']] 2 [['17', '47', '82']] 1 [['95', '64']] 0 [[' 75']] 088', '02', '77', '73', '07', '63', '67']] 5 [['19', '01', '23', '75', '03' , '34']] 4 [['20', '04', '82', '47', '65']] 3 [['18', '35', '87', '10']] 2 [['17', '47', '82']] 1 [['95', '64']] 0 [['75']] 088', '02', '77', '73', '07', '63', '67']] 5 [['19', '01', '23', '75', '03' , '34']] 4 [['20', '04', '82', '47', '65']] 3 [['18', '35', '87', '10']] 2 [['17', '47', '82']] 1 [['95', '64']] 0 [['75']] 0

现在这就是我想要的,但我似乎无法得到这个

标签: pythonalgorithm

解决方案


  listOfStrings = [ i.split() for i in triangle.splitlines() if i ]
  listOfInt = []
  for row in listOfStrings:
      listOfInt.append( [ int(x) for x in row ] )

推荐阅读