Python 如何从列表中创建二维表?
从表示曲面上的点的元组列表开始Python 如何从列表中创建二维表?,python,list,Python,List,从表示曲面上的点的元组列表开始 list = [(48, 228), (96, 204), (120, 192), ... ] 创建新列表的python方法是什么,这样我们就可以调用原始列表中的值,就像它们分布在网格上一样 像这样: >>>print grid[0][0] (48, 228) >>>print grid[0][1] (96, 204) 我并不觉得有什么困难,也许一个简单的grid=[list]就足够了 如果要将其作为快速二维阵列,请使用nu
list = [(48, 228), (96, 204), (120, 192), ... ]
创建新列表的python方法是什么,这样我们就可以调用原始列表中的值,就像它们分布在网格上一样
像这样:
>>>print grid[0][0]
(48, 228)
>>>print grid[0][1]
(96, 204)
我并不觉得有什么困难,也许一个简单的
grid=[list]
就足够了
如果要将其作为快速二维阵列,请使用numpy:
import numpy as np
grid = np.array(list).reshape(1,-1)
print grid[0,1] #prints (96, 204)
如果数据变得更大或维度更高,请始终使用numpy数组,不要使用列表列表
一句话:请不要调用变量
list
,它会隐藏内置方法list
我真的看不出困难,也许一个简单的grid=[list]
就足够了
如果要将其作为快速二维阵列,请使用numpy:
import numpy as np
grid = np.array(list).reshape(1,-1)
print grid[0,1] #prints (96, 204)
如果数据变得更大或维度更高,请始终使用numpy数组,不要使用列表列表
备注:请不要调用变量
list
,它将隐藏内置方法list
,这是一个列表理解,可以解决此问题:
l = [(48, 228), (96, 204), (120, 192), ... ]
# 'width' is the width of your bidimensional table (grid)
bidimensional = [l[a*width:(a+1)*width] for a in xrange(len(l)/width)]
解释:
[ # make a list of:
l[a*width:(a+1)*width]
# get the 'a'-th slice of length 'width' of the initial list
for a in xrange(len(l)/width) # for 'len(l)/width' slices
]
测试:
这是解决此问题的列表理解:
l = [(48, 228), (96, 204), (120, 192), ... ]
# 'width' is the width of your bidimensional table (grid)
bidimensional = [l[a*width:(a+1)*width] for a in xrange(len(l)/width)]
解释:
[ # make a list of:
l[a*width:(a+1)*width]
# get the 'a'-th slice of length 'width' of the initial list
for a in xrange(len(l)/width) # for 'len(l)/width' slices
]
测试:
您希望网格[1][0]是什么?如果在
网格[0][x]
之上的任何内容都存在值,那么网格=[list]
就可以了,但可能不是您想要的。你能说得更具体一点吗?@Tim我想(96228)
,可能是打字错误。你希望网格[1][0]是什么?如果在网格[0][x]
之上的任何内容都存在值,那么网格=[list]
就可以了,但可能不是您想要的。你能说得更具体些吗?@Tim我想这可能是打字错误。事实上,这很好地解决了这个问题。我希望有一天我的巨蟒巫毒会像你的一样强大。事实上,这很好地解决了这个问题。我希望有一天我的巨蟒巫毒会像你的一样强大。