压缩数组 returns 为 <zip object at 0x02B6F198>
zipped array returns as <zip object at 0x02B6F198>
我有两个数组:X = [1,2,3,4,5,3,8]
和 Y = ['S', 'S', 'S', 'S', 'S', 'C', 'C']
。当我打印它的压缩数组时,它会生成 <zip object at 0x02B6F198>
。这两个数组被压缩的原因是我可以在
行中对 sorted(X)
对应的 Y
进行排序
sortedY = [y for x,y in sorted(zip(X,Y))]
这行代码没有按我想要的方式对 Y 进行排序 (sortedY = ['S','S','C','S','S','S','C']
),但 SortedX
与 X
保持相同的排列。
我有第二个程序,我在其中使用了这段代码,它工作正常,但这个程序的大小明显小于原始程序。
如果您尝试直接打印压缩列表,那是行不通的。 zip
returns 一个对象,因此当您尝试打印它时,您只会获得对象方法。如果您想将其视为列表,请应用 returns 列表的操作。
X = [1,2,3,4,5,3,8]
Y = ['S', 'S', 'S', 'S', 'S', 'C', 'C']
# Some Simple Methods Include
print(list(zip(X, Y)))
print([i for i in zip(X, Y)])
# Output
[(1, 'S'), (2, 'S'), (3, 'S'), (4, 'S'), (5, 'S'), (3, 'C'), (8, 'C')]
现在我不确定问题出在哪里,因为你提供的应该有效
sortedY = [y for x,y in sorted(zip(X,Y))]
print(sortedY)
# Output
['S', 'S', 'C', 'S', 'S', 'S', 'C']
如您所见,它对 Y 进行排序,对应于已排序的 X
print(sorted(zip(X,Y)))
#Output (X, Y)
[(1, 'S'), (2, 'S'), (3, 'C'), (3, 'S'), (4, 'S'), (5, 'S'), (8, 'C')]
我有两个数组:X = [1,2,3,4,5,3,8]
和 Y = ['S', 'S', 'S', 'S', 'S', 'C', 'C']
。当我打印它的压缩数组时,它会生成 <zip object at 0x02B6F198>
。这两个数组被压缩的原因是我可以在
sorted(X)
对应的 Y
进行排序
sortedY = [y for x,y in sorted(zip(X,Y))]
这行代码没有按我想要的方式对 Y 进行排序 (sortedY = ['S','S','C','S','S','S','C']
),但 SortedX
与 X
保持相同的排列。
我有第二个程序,我在其中使用了这段代码,它工作正常,但这个程序的大小明显小于原始程序。
如果您尝试直接打印压缩列表,那是行不通的。 zip
returns 一个对象,因此当您尝试打印它时,您只会获得对象方法。如果您想将其视为列表,请应用 returns 列表的操作。
X = [1,2,3,4,5,3,8]
Y = ['S', 'S', 'S', 'S', 'S', 'C', 'C']
# Some Simple Methods Include
print(list(zip(X, Y)))
print([i for i in zip(X, Y)])
# Output
[(1, 'S'), (2, 'S'), (3, 'S'), (4, 'S'), (5, 'S'), (3, 'C'), (8, 'C')]
现在我不确定问题出在哪里,因为你提供的应该有效
sortedY = [y for x,y in sorted(zip(X,Y))]
print(sortedY)
# Output
['S', 'S', 'C', 'S', 'S', 'S', 'C']
如您所见,它对 Y 进行排序,对应于已排序的 X
print(sorted(zip(X,Y)))
#Output (X, Y)
[(1, 'S'), (2, 'S'), (3, 'C'), (3, 'S'), (4, 'S'), (5, 'S'), (8, 'C')]