|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 凌云裂空 于 2017-2-15 20:48 编辑
- dist = []
- dimension = 3
- def create_dist():
- dist = [0]*(dimension)
- for k in range(dimension):
- dist[k] = [0]*(dimension)
- for i in range(dimension):
- for j in range(dimension):
- dist[i][j] = [0]*(dimension+1)
- print('内层:'+str(dist))
- a = dist
- return
- create_dist()
- print('外层:'+str(dist))
复制代码
结果:
- 内层:[[[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]], [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]], [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]]
- 外层:[]
复制代码
各位大神,第一次发帖求助:
百思不得其解啊,为什么是这种结果啊?我的dist明明是个全局变量,我在第一行明明给赋值了一个空列表。为什么我的函数外层的print语句打印出来的还是一个空的列表呢?就好像dist是个局部变量一样,即使我在前面加了global,结果依然如此。请问这是为什么啊?问题出自哪里?
另外,这段代码的目的是创建一个三维的列表,请问有没有更直接更高效的方式呢?
本人小白一枚,第一次发帖提问,如有不妥之处,劳烦各路大神们海涵…^_^
非常感激!!! |
|