python列表中偶数位索引元素排序_Python list列表元素的计数与排序

列表元素除了可以添加和删除外,还可以进行其他操作。本节教程就来具体介绍。

Python列表元素的计数与索引

列表中的 count( ) 方法也很常用,它能够统计某个元素在列表中出现的次数。

如果我们想从列表中找出某个给定值的第一个匹配项的索引位置,则可以采用 index( ) 方法。

如果仅仅是判断某个元素是否存在于列表之中,使用运算符 in(出现)或 not in(不出现)即可,这些方法会返回一个 True 或 False 的布尔值。代码如下所示。

In [24]: fruits = [ 'orange', 'apple', 'pear', 'banana', 'kiwi', 'apple', 'banana']

In [25]: fruits.count('apple') #元素'apple'在列表 fruits 中出现的次数

Out[25]: 2

In [26]: fruits.index('apple') #元素'apple'在列表 fruits 中首次出现的索引值

Out[26]: 1

In [27]: 'pear' in fruits #'pear' 在列表 fruits 中吗?

Out[27]: True #测试结果:在(True )

In [28]: 'potato' not in fruits #'potato'不在列表 fruits 中?

Out[28]: True #测试结果为:不在(True )

Python列表元素的排序与逆序

列表还为我们提供了非常方便的排序和逆序输出功能。前者使用的方法是 sort( ),后者使用的方法是 reverse( ),示例代码如下。

In [29]: fruits = [ 'orange', 'apple', 'pear', 'banana', 'kiwi', 'apple', 'banana']

In [30]: fruits.sort() #按字典顺序排序

In [31]: fruits

Out[31]: [ 'apple', 'apple', 'banana', 'banana', 'kiwi', 'orange', 'pear']

In [32]: fruits.reverse() #按字典逆序排序

In [33]: fruits #验证

Out[33]: [ 'pear', 'orange', 'pear', 'kiwi', 'banana', 'banana', 'apple', 'apple']

在上面代码的 In [30] 处,我们使用列表的 sort( ) 方法对原列表元素进行排序,默认规则是直接比较元素大小。如果在 sort( ) 方法内指定参数,则可完成特定规则的排序。

sort( ) 方法原型如下。

list.sort(cmp=None, key=None, reverse=False)

该函数的三个参数都有默认值,也就是说,如果不指定值,它们会启用等号=后面的默认值。其中,cmp 是可选参数,如果指定了该参数(通常是一个指定排序规则的函数),sort( ) 方法会使用该参数描述的规则进行排序。key 用来指定排序比较的元素。reverse 用来指定排序的升降规则,reverse = True 表示降序,reverse = False 表示升序(默认)。

除了可用 Python 列表内置的 sort( ) 方法排序,也可以用 Python 内置的全局函数 sorted( ) 对可迭代的列表对象进行排序,从而生成新的列表。

In [1]: fruits = [ 'orange', 'apple', 'pear', 'banana', 'kiwi', 'apple', 'banana']

In [2]: sorted(fruits, reverse=True) #直接返回结果

Out[2]: [ 'pear', 'orange', 'kiwi', 'banana', 'banana', 'apple', 'apple']

In [3]: fruits #验证fruits是否有效

Out[3]: [ 'orange', 'apple', 'pear', 'banana', 'kiwi', 'apple', 'banana']

使用列表的内置方法 sort( ) 对列表排序会“伤筋动骨”,修改列表本身的数据。而全局内置函数 sorted( ) 则不同,它会复制原始列表的一个副本,然后在副本上进行排序操作,在排序后,原始列表依旧“安然无恙”(参考 Out[3] 处的输出)。我们可以根据自己的需要来选择更适用于自己问题场景的方法。

列表中还有很多功能强大的内置方法,我们可以用 dir(list) 命令列举出来,具体用法读者可以自行查阅,我们会在后续的范例中逐步使用这些方法。

In [1]: dir(list)

Out[1] : [ '_add_', '_class_', '_contains_', '_delattr_', '_delitem_', '_dir_', '_doc_', '_eq_', '_format_', '_ge_', '_getattribute_', '_getitem_', '_gt_', '_hash_', '_iadd_', '_imul_', '_init_', '_init_subclass_', '_iter_', '_le_', '_len_', '_It_', '_mul_', '_ne_', '_new_', '_reduce_', '_reduce_ex_', '_rep_', '_reversed_', '_rmul_', '_setattr_', '_setitem_', '_sizeof_', '_str_', '_subclasshook_', 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'sort' ]

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值