Arrays 压缩数组返回为<;0x02B6F198处的压缩对象>;
我有两个数组:Arrays 压缩数组返回为<;0x02B6F198处的压缩对象>;,arrays,sorting,python-3.x,zip,Arrays,Sorting,Python 3.x,Zip,我有两个数组:X=[1,2,3,4,5,3,8]和Y=['S','S','S','S','C','C']。当我打印这个压缩数组时,它会生成。这两个数组压缩的原因是,我可以对行中的sorted(X)对应的Y进行排序 sortedY=[y表示x,y表示已排序(zip(x,y))] 这行代码没有按我所希望的方式对Y进行排序(sortedY=['S','S','C','S','S','S','C']),但是SortedX与X的排列方式相同 我有第二个程序,我在其中使用了这段代码,它工作得很好,但是这个程
X=[1,2,3,4,5,3,8]
和Y=['S','S','S','S','C','C']
。当我打印这个压缩数组时,它会生成
。这两个数组压缩的原因是,我可以对行中的sorted(X)
对应的Y
进行排序
sortedY=[y表示x,y表示已排序(zip(x,y))]
这行代码没有按我所希望的方式对Y进行排序(sortedY=['S','S','C','S','S','S','C']
),但是SortedX
与X
的排列方式相同
我有第二个程序,我在其中使用了这段代码,它工作得很好,但是这个程序的大小比原始程序小得多。如果您试图直接打印压缩列表,那么这将不起作用
zip
返回一个对象,因此当您尝试打印它时,您只需获得object方法。如果要将其视为列表,请应用返回列表的操作
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')]
你的排序逻辑是什么?你想要什么排序?你想要什么排序?因为这就是Y与X相对应的排序方式。你的问题也是为什么在打印压缩列表时得到object方法而不是列表?我确实希望Y与X相对应。是的,这是我的问题。谢谢,这很有帮助。我仍然不确定对象方法是什么,但我已经确定了问题所在;在前面调用的函数中,我使用了
X.sort()
而不是something=sorted(X)