|
发表于 2019-2-2 19:19:22
|
显示全部楼层
- def fun214(string,n):
- if len(string) >= n**2:
- string = string[:(n**2)-1]
- else:
- string = string*((n**2)//len(string)) + string[:(n**2)%len(string)]
- list_x = [['' for i in range(n)] for j in range(n)]
- count = n//2
- for i in range(count):
- for a in range(i,n-i):
- list_x[i][a] = string[0]
- string = string[1:]
- for b in range(i+1,n-i):
- list_x[b][n-i-1] = string[0]
- string = string[1:]
- for c in range(i,n-i-1)[::-1]:
- list_x[n-i-1][c] = string[0]
- string = string[1:]
- if i == count:
- break
- else:
- for d in range(i+1,n-i-1)[::-1]:
- list_x[d][i] = string[0]
- string = string[1:]
- if len(string) == 1:
- list_x[len(list_x[0])//2][len(list_x[0])//2] = string[0]
- return list_x
- if __name__ == '__main__':
- for i in fun214('ABCDEFGHIJKLMNOP',10):
- print(i)
复制代码- ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J']
- ['D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'K']
- ['C', 'P', 'A', 'B', 'C', 'D', 'E', 'F', 'M', 'L']
- ['B', 'O', 'D', 'E', 'F', 'G', 'H', 'G', 'N', 'M']
- ['A', 'N', 'C', 'P', 'A', 'B', 'I', 'H', 'O', 'N']
- ['P', 'M', 'B', 'O', 'D', 'C', 'J', 'I', 'P', 'O']
- ['O', 'L', 'A', 'N', 'M', 'L', 'K', 'J', 'A', 'P']
- ['N', 'K', 'P', 'O', 'N', 'M', 'L', 'K', 'B', 'A']
- ['M', 'J', 'I', 'H', 'G', 'F', 'E', 'D', 'C', 'B']
- ['L', 'K', 'J', 'I', 'H', 'G', 'F', 'E', 'D', 'C']
- >>>
复制代码 |
|