继续从别处抠题目
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/741f3eb46d1848737ffee7448dca6c77.png)
1. 分析问题
- 突发奇想,为什么不可以建立一个dataframe,是第一行就1个数,第二行2个数
- 这样就把蛇形矩阵旋转了个90度
- 一切就舒服了
- 如果要原来矩阵中(20,20),则取dataframe第39行,第一个数+19,就是我们要找的数字
2. 代码实验
import numpy as np
import pandas as pd
def cube_num(lines):
df = pd.DataFrame(columns=['numbers'])
nums = np.arange(1, 1000).tolist()
for i in range(1, lines):
if i == 1:
df.loc[i] = [1]
nums = nums[1:]
if i > 1:
end = nums.index(nums[0]+i)
df.loc[i] = [nums[: end]]
nums = nums[end:]
while len(nums) == 1 or i == lines:
break
return df
df = cube_num(40)
numbers
1 1
2 [2, 3]
3 [4, 5, 6]
4 [7, 8, 9, 10]
5 [11, 12, 13, 14, 15]
6 [16, 17, 18, 19, 20, 21]
7 [22, 23, 24, 25, 26, 27, 28]