Python到VB6的转换

Python到VB6的转换,python,vb6,Python,Vb6,我对下面的代码有一个问题: def getJenksBreaks( dataList, numClass ): dataList.sort() mat1 = [] for i in range(0,len(dataList)+1): temp = [] for j in range(0,numClass+1): temp.append(0) mat1.append(temp) 例如,mat1将如下所示 0, 0, 0, 0, 0, 0 0, 0,

我对下面的代码有一个问题:

def getJenksBreaks( dataList, numClass ):

dataList.sort()

mat1 = []
for i in range(0,len(dataList)+1):
    temp = []
    for j in range(0,numClass+1):
        temp.append(0)
    mat1.append(temp)
例如,
mat1
将如下所示

0, 0, 0, 0, 0, 0

0, 0, 0, 0, 0, 0

0, 0, 0, 0, 0, 0

0, 0, 0, 0, 0, 0
之后,将创建
mat2

mat2 = []
for i in range(0,len(dataList)+1):
    temp = []
    for j in range(0,numClass+1):
        temp.append(0)
mat2.append(temp)
然后修改
mat1
mat2

for i in range(1,numClass+1):
    mat1[1][i] = 1
    mat2[1][i] = 0
    for j in range(2,len(dataList)+1):
        mat2[j][i] = float('inf')
当我看到这一行:

 mat1[1][i] = 1
在我看来,XY位置的项目似乎已更改


我想将这段代码移植到VB6,但我看不到在VB6中反映这种行为的任何方法。集合无法做到这一点,我的意思是使用X和Y访问项目,是吗?

好吧,我创建了自己的类来处理这个问题。如果有人有更好的主意,请告诉我

Option Explicit

Private m_XCount&
Private m_YCount&
Private m() As Variant

Public Sub Add(ByRef u() As Variant)

    If UBound(u) > m_XCount Then
        m_XCount = UBound(u)
    End If

    m_YCount = m_YCount + 1

    ReDim Preserve m(0 To m_XCount, 0 To m_YCount)

    Dim l&
    For l = 0 To UBound(u)
        m(m_XCount + l, m_YCount) = u(l + 1)
    Next l

    m_YCount = m_YCount + 1

End Sub

Private Sub Class_Initialize()

    ReDim m(0, 0)

End Sub
Public Property Get Value(ByVal uX As Long, ByVal uY As Long) As Variant

    Value = m(uX, uY)

End Property
Public Property Let Value(ByVal uX As Long, ByVal uY As Long, ByVal uValue)

    m(uX, uY) = uValue

End Property

为什么要转换成一种多年来一直被弃用的语言?我需要将它集成到一个巨大的VB6应用程序中,我无法轻松地转换成另一种语言。对我来说,目前将Python代码转换为VB6比将大型应用程序转换为.NET或Python更容易。但是谢谢你的邀请。