小康2022 2021-12-11 23:44 采纳率: 87.5%
浏览 27
已结题

请解释一下这是什么意思?

a = [ 'blue' ,  'green' ,  'orange' ,  'purple' ,  'yellow' ] 
b = [3, 2, 5, 4, 1] 
sortedList = [val  for  (_, val)  in  sorted(zip (b, a), key=lambda x: x[0])]
print(sortedList)
  • 写回答

1条回答 默认 最新

  • Hann Yang 全栈领域优质创作者 2021-12-12 07:49
    关注
    
    >>> zip (b, a) #zip()函数把两个列表转化成可迭代的zip对象
    <zip object at 0x0000000002FBD680>
    >>> list(zip(b,a))  
    [(3, 'blue'), (2, 'green'), (5, 'orange'), (4, 'purple'), (1, 'yellow')]
    >>> set(zip(b,a))
    {(5, 'orange'), (1, 'yellow'), (3, 'blue'), (2, 'green'), (4, 'purple')}
    >>> dict(zip(b,a))  #zip对象可以转化成字典、列表、集合等都可以
    {3: 'blue', 2: 'green', 5: 'orange', 4: 'purple', 1: 'yellow'}
    >>> list(zip(b,a))
    [(3, 'blue'), (2, 'green'), (5, 'orange'), (4, 'purple'), (1, 'yellow')]
    
    >>> sorted(zip (b, a), key=lambda x: x[0]) #sorted()给zip排序,x:x[0]表示以第1列元素3,2,5,4,1来排序;如x:x[1]则排第2列元素,那些“颜色”
    [(1, 'yellow'), (2, 'green'), (3, 'blue'), (4, 'purple'), (5, 'orange')]
    >>> [val  for  (_, val)  in  sorted(zip (b, a), key=lambda x: x[0])]  # 列表推导式,其中(_, val) 用下划线的那一列元素忽略 
    ['yellow', 'green', 'blue', 'purple', 'orange']
    >>> [val  for  (val,_)  in  sorted(zip (b, a), key=lambda x: x[0])]  # 用(val,_) 则忽略后一列元素
    [1, 2, 3, 4, 5]
    >>> 
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 12月15日
  • 已采纳回答 12月12日
  • 创建了问题 12月11日

悬赏问题

  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置