求助 关于sorted函数的key参数
sorted_id = sorted(range(len(nums)), key=lambda k: nums)nums是一个列表,key是比较的参数,lambda是匿名函数,但后面的nums【k】是什么意思?
class Solution:
def twoSum(self, nums, target):
"""
:type nums: List
:type target: int
:rtype: List
"""
sorted_id = sorted(range(len(nums)), key=lambda k: nums)
head = 0
tail = len(nums) - 1
sum_result = nums] + nums]
while sum_result != target:
if sum_result > target:
tail -= 1
elif sum_result < target:
head += 1
sum_result = nums] + nums]
return , sorted_id]
key是比较的参数,lambda是匿名函数,但后面的nums【k】是什么意思?
这里的 nums 的 k 就是 nums 的下标索引,也就是通过 range(len(nums)) 产生一个和 nums 下标正好一致的整数序列
range(len(nums)) 将会一个个传入 key 参数的匿名函数中的 k 参数的值,而对应排序就是对应的列表中的元素
而将通过比较元素大小,来排序 range(len(nums)) 产生的序列顺序
简单来说 这里的 sorted(range(len(nums)), key=lambda k: nums) 就是通过列表中对应索引值的元素的值,来对其索引值进行排序
Twilight6 发表于 2020-8-2 23:32
这里的 nums 的 k 就是 nums 的下标索引,也就是通过 range(len(nums)) 产生一个和 nums 下标正 ...
谢谢你的回复,我上传了一张照片,我很困惑的是最后一次对num的排序。按照我的理解不应该是【0,2,3,1】吗?不是比较num的大小,然后在新建列表里显示num列表对应元素的排位吗? 李万金 发表于 2020-8-2 23:45
谢谢你的回复,我上传了一张照片,我很困惑的是最后一次对num的排序。按照我的理解不应该是【0,2,3,1】吗 ...
num = 对应位置参数是 也就是
0 对 2
1 对 7
2 对 11
3 对 5
排序后元素的大小顺序应该是 则对应原先的位置参数就为 这样看得懂吧
Twilight6 发表于 2020-8-3 00:07
num = 对应位置参数是 也就是
0 对 2
1 对 7
恍然大悟,非常感谢{:5_95:}
页:
[1]