Python列表中查找元素和对列表进行排序(第8节)


Python列表提供了index()count()方法,它们都可以用来查找元素。对列表进行排序,可以使用内置的sorted()函数或列表的sort()方法

1、index()方法

index()方法用来查找某个元素在列表中出现的位置(也就是索引),当列表中有多个同样的元素,索引值为第一个匹配的元素的位置,例如:

动手练一练:

a = ["Orange", "Apple", "Banana", "Apple", "Cherry"]
print("Apple元素index结果为:", a.index("Apple"))  # 输出 Apple元素index结果为: 1
print("Banana元素index结果为:", a.index("Banana"))  # 输出  Banana元素index结果为: 2

执行以上代码,输出结果为:

Apple元素index结果为 1
Banana元素index结果为 2

上面的例子中,index会检索元素“Apple”。列表中有2个“Apple”元素,返回值为第一次查找到“Apple”时的索引位置。但是要注意,如果元素不在列表中,Python解释器就会报错。

2、count()方法

count()方法用来统计某个元素在列表中出现的次数,例如:

动手练一练:

a = ["Orange", "Apple", "Banana", "Apple", "Cherry"]
print("初始列表为:", a)
print("Apple出现的次数为:", a.count("Apple"), "次")  # 输出 Apple出现的次数为: 2 次
print("Python出现的次数为:", a.count("Python"), "次")  # 输出 Python出现的次数为: 0 次

执行以上代码,输出结果为:

初始列表为 ['Orange', 'Apple', 'Banana', 'Apple', 'Cherry']
Apple出现的次数为 2 
Python出现的次数为 0 

上面的例子中,count()函数查找列表a中“Apple”元素出现的次数,并输出2,如果count()输出为0,就表示列表中不存在该元素,所以count()也可以用来判断列表中的某个元素是否存在。

3、reverse()函数

在Python中,经常需要对列表进行操作,其中一个常见的需求是将列表中的元素按照相反的顺序重新排列。为了满足这个需求,Python提供了一个非常方便的函数reverse()

动手练一练:

a = ["Orange", "Apple", "Banana", "Cherry"]
print("初始列表为:", a)  # 输出 ["Orange", "Apple", "Banana", "Cherry"]
print("-------这是虚线-------")
a.reverse()
print("使用reverse结果为:", a)# 输出   ['Cherry', 'Banana', 'Apple', 'Orange']

执行以上代码,输出结果为:

初始列表为 ['Orange', 'Apple', 'Banana', 'Cherry']
-------这是虚线-------
使用reverse结果为 ['Cherry', 'Banana', 'Apple', 'Orange']

上面的例子中,reverse()函数将列表元素进行了逆序排列,并且该函数没有返回值。

4、sort()函数

sort()函数用于对列表中的元素按照升序或降序进行排列,可以使用sort()函数对数字、字符串、甚至包含混合数据类型的列表进行排序。sort()函数默认按照升序排序,例如:

动手练一练:

# 对数字列表进行排序
a = [6, 4, 2, 1, 8, 7]
a.sort()
print(a)  # 输出 [1, 2, 4, 6, 7, 8]

print("-------这是虚线-------")

# 对字符串列表进行排序
b = ["Orange", "Apple", "Banana", "Cherry"]
b.sort()
print(b)  # 输出 ['Apple', 'Banana', 'Cherry', 'Orange']

print("-------这还是虚线-------")

# 对数字列表进行“降序”排序
c = [6, 4, 2, 1, 8, 7]
c.sort(reverse=True)  # 注意:reverse=True表示按降序排序,reverse=False(或不写)表示按升序排序
print(c)  # 输出 [8, 7, 6, 4, 2, 1]

执行以上代码,输出结果为:

[1, 2, 4, 6, 7, 8]
-------这是虚线-------
['Apple', 'Banana', 'Cherry', 'Orange']
-------这还是虚线-------
[8, 7, 6, 4, 2, 1]

上面的例子中,sort()函数如果指定参数为“reverse=False”或没有指定参数,则默认按照升序排序,如果指定“reverse=True”参数,我们可以将列表按照降序排列。

5、sorted()函数

sorted()函数同样可以对列表中的元素进行排序,sorted()函数会返回一个新的排序后的列表,而sort()函数会在原地修改列表。例如:

动手练一练:

a = [6, 4, 2, 1, 8, 7]
a.sort()
print(a)  # 输出 [1, 2, 4, 6, 7, 8]

print("-------这是虚线-------")

b = [6, 4, 2, 1, 8, 7]
c = sorted(b)
print(b)  # 输出 [6, 4, 2, 1, 8, 7]
print(c)  # 输出 [1, 2, 4, 6, 7, 8]

执行以上代码,输出结果为:

[1, 2, 4, 6, 7, 8]
-------这是虚线-------
[6, 4, 2, 1, 8, 7]
[1, 2, 4, 6, 7, 8]

上面的例子中,sort()和sorted()的区别在于,sort()会在原地修改列表,sorted()会返回一个新的排序后的列表。如果不需要保留原列表的顺序,可以使用sort()函数;如果需要保留原列表的不变性,可以使用sorted()函数。