Python 在函数中返回已排序的列表…打印列表时仅返回一个值所有显示的值

Python 在函数中返回已排序的列表…打印列表时仅返回一个值所有显示的值,python,list,sorting,return,Python,List,Sorting,Return,我正在计算一个简单的推荐系统。在我的最近邻方程中,我试图返回所有_组合的列表,以便对其进行排序 在函数中打印列表时,程序运行时会显示所有值。但是,返回值(排序列表)不会出现 只有一个值出现,更奇怪的是,每次程序运行时,这个值都会改变 它返回列表中的任意一个值 这是怎么回事?我已经尝试将return语句移动到不同的选项卡级别,但它并没有改变它的操作方式 守则: #find the nearest neighbor def nearestNeighborManhattan(username,use

我正在计算一个简单的推荐系统。在我的最近邻方程中,我试图返回所有_组合的列表,以便对其进行排序

在函数中打印列表时,程序运行时会显示所有值。但是,返回值(排序列表)不会出现

只有一个值出现,更奇怪的是,每次程序运行时,这个值都会改变

它返回列表中的任意一个值

这是怎么回事?我已经尝试将return语句移动到不同的选项卡级别,但它并没有改变它的操作方式

守则:

#find the nearest neighbor 
def nearestNeighborManhattan(username,users):
    distances = 0
    all_combinations = []
    for name in users:
        if name != username:
            distances = sum_manhattan(users[username],users[name])
            all_combinations.append(distances)
            print(all_combinations)
            neat = all_combinations.sort()

            return neat 


print(nearestNeighborManhattan("Veronica",users))
当return被注释掉时,输出如下:

[3.5]
[3.5, 8.5]
[3.5, 8.5, 4.0]
[3.5, 4.0, 8.5, 4.0]
[3.5, 4.0, 4.0, 8.5, 6.5]
[3.5, 4.0, 4.0, 6.5, 8.5, 4.0]
[3.5, 4.0, 4.0, 4.0, 6.5, 8.5, 2.0]
返回语句未注释掉和打印语句未注释掉时的值在程序每次运行时都会更改为列表中的一个数字。上一次我运行它是8.5,而且只有8.5。该列表根本不打印


函数“Veronica”之外的print语句中的p.S.只是我正在使用的词典中的一个用户。

niat=all\u compositions.sort()
niat
设置为
None
,因为
sort
进行排序(并返回
None


如果您希望
niat
成为所有组合的排序版本,请使用
niat=sorted(所有组合)

我认为返回的niat应该与for循环一致,因此您可以循环所有日期,然后返回执行此操作并将返回移动到for循环工作,谢谢!