【发布时间】:2022-11-21 23:16:15
【问题描述】:
Hello there
I'm freshman to python . Need your help
I'm trynna read matrix from .txt and add it to the traveling salesmen problem code . Can you explain what do I do wrong?
Input.txt looks:
Place; date1;date2;date3
#1;65;27;16
#2;46;56;11
#3;36;14;28
导入 csv
f= open("input1.txt","r")
sum=(1 for line in open("input1.txt","r"))
打印(总和)
def Min(lst, myindex):
return min(x for idx, x in enumerate(lst) if idx != myindex)
def 删除(矩阵,索引 1,索引 2):
del matrix[index1]
for i in matrix:
del i[index2]
return matrix
n = 总和
矩阵 = []
高 = 0
路径长度 = 0
海峡= []
存根 = []
水库 = []
结果 = []
开始矩阵 = []
对于范围内的我(n):
Str.append(i)
Stb.append(i)
对于范围内的我(n):
matrix.append(map(float, row) for row in csv.reader(f,delimiter=";"))
打印(矩阵)
对于范围内的我(n):
StartMatrix.append(matrix[i].copy())
对于范围内的我(1,n):
matrix[i][i] = float('inf')
而真实的:
for i in range(1,len(matrix)):
temp = min(matrix[i])
H += temp
for j in range(1,len(matrix)):
matrix[i][j] -= temp
对于我在范围内(1,len(矩阵)):
temp = min(row[i] for row in matrix)
H += temp
for j in range(1,len(matrix)):
matrix[j][i] -= temp
空最大值 = 0
索引 1 = 0
索引 2 = 0
临时工 = 0
对于我在范围内(1,len(矩阵)):
for j in range(1,len(matrix)):
if matrix[i][j] == 0:
tmp = Min(matrix[i], j)+Min((row[j] for row in matrix), i)
if tmp >= NullMax:
NullMax = tmp
index1 = i
index2 = j
res.append(Str[index1]+1)
res.append(Stb[index2]+1)
oldIndex1 = Str[index1]
oldIndex2 = Stb[index2]
如果 Str 中的 oldIndex2 和 Stb 中的 oldIndex1:
NewIndex1 = Str.index(oldIndex2)
NewIndex2 = Stb.index(oldIndex1)
matrix[NewIndex1][NewIndex2] = float('inf')
del Str[index1]
del Stb[index2]
matrix = Delete(matrix, index1, index2)
while 1:
if len(matrix) == 1:
break
对于范围内的我 (1, len(res)-1, 2):
if res.count(res[i]) < 2:
result.append(res[i])
result.append(res[i+1])
for i in range(1, len(res)-1, 2):
for j in range(1, len(res)-1, 2):
if result[len(result)-1] == res[j]:
result.append(res[j])
result.append(res[j+1])
print(result)
对于范围内的我 (1, len(result)-1, 2):
if i == len(result)-2:
PathLenght += StartMatrix[result[i]-1][result[i+1]-1]
PathLenght += StartMatrix[result[i+1]-1][result[1]-1]
else:
PathLenght += StartMatrix[result[i]-1][result[i+1]-1]
print(PathLenght)
input()
When I trynna check it shows <generator object <genexpr> at 0x038341B0>
[<generator object <genexpr> at 0x038341B0>,<generator object <genexpr> at 0x038341B0>,<generator object <genexpr> at 0x038341B0>,<generator object <genexpr> at 0x038341B0>]
【问题讨论】:
标签: python python-3.x