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