【问题标题】:What is the function of pair[1] in Python3?Python3中pair[1]的作用是什么?
【发布时间】:2019-05-27 04:27:48
【问题描述】:

我在看python3官方文档,遇到一个语法对[1]看不懂。

pairs = [(1, 'one'), (2, 'two'), (3, 'three'), (4, 'four')]
pairs.sort(key=lambda pair: pair[1])

print(pairs)
# [(4, 'four'), (1, 'one'), (3, 'three'), (2, 'two')]

【问题讨论】:

    标签: python python-3.x


    【解决方案1】:

    pairstuples 的列表。 (1, 'one') 是一个包含两个元素的元组示例。

    来自文档:

    元组是不可变的序列,通常用于存储异构数据的集合

    然后我们通过key=lambda pair: pair[1] 对元组的第二个元素就地排序该列表(pair[1] 表示排序键应该是元组的第二个元素)

    由于第二个元素是字符串,所以排序是按字典顺序或字母顺序进行的。

    来自文档:

    list.sort(key=None, reverse=False)
    对列表中的项目进行排序(参数可用于排序自定义,请参阅 sorted() 了解它们的解释)。

    In [7]: pairs = [(1, 'one'), (2, 'two'), (3, 'three'), (4, 'four')]                                                                                                                 
    
    In [8]: pairs.sort(key=lambda pair: pair[1])                                                                                                                                        
    
    In [9]: pairs                                                                                                                                                                       
    Out[9]: [(4, 'four'), (1, 'one'), (3, 'three'), (2, 'two')]
    

    如果您对元组的第一个元素进行排序,则排序是对整数进行的,并且是按数字进行的

    In [10]: pairs.sort(key=lambda pair: pair[0])                                                                                                                                       
    
    In [11]: pairs                                                                                                                                                                      
    Out[11]: [(1, 'one'), (2, 'two'), (3, 'three'), (4, 'four')]
    

    这个问题here 详细介绍了元组是什么以及 这个问题here 详细介绍了key 在排序函数sort()sorted() 中的工作原理

    【讨论】:

    • 为什么pairs是带有'[]'的元组列表而不是列表?
    • 任何列表在python中都用方括号[]表示,如果是元组列表@Andy没关系
    【解决方案2】:

    在这种情况下,您将一个新的“键”函数传递给 list.sort。
    key 函数将被赋予输入列表中的每个项目,并应返回用于对该项目进行排序的键。 lambda 定义 一个接受这些项目之一的函数(函数内的命名对), 并返回它的第二项(索引 1)。 list.sort 然后对项目进行排序 在基于这个键的原始列表中,你得到“四”,“一”, "three", "two" 排序为字符串,但输出将包括完整的 对。 那是 [(4, '四'), (1, '一'), (3, '三'), (2, '二')]

    【讨论】:

      猜你喜欢
      • 2010-09-11
      • 1970-01-01
      • 2020-01-09
      • 1970-01-01
      • 2021-06-12
      • 2018-07-24
      • 2023-03-28
      • 2020-01-10
      • 2010-09-14
      相关资源
      最近更新 更多