Python 列表的一些操作 函数&方法

  • 列表元素个数 len(list) ,有返回值
  • 返回列表元素最大值 max(list),有返回值
  • 返回列表元素最小值 min(list),有返回值

        上面三个是用的比较多的函数(可以看到参数都是列表,形式为 函数名(列表名) ),接下来介绍用的比较多的方法(形式多为 列表名.方法(参数)

  • 在列表末尾添加新的对象 list.append(obj),无返回值
  • 在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表) list.extend(seq),无返回值
  • 统计某个元素在列表中出现的次数 list.count(obj),有返回值
  • 从列表中找出某个值第一个匹配项的索引位置 list.index(obj),有返回值
  • 将对象插入列表 list.insert(index,obj),无返回值
  • 移除列表中的一个元素(默认最后一个元素),并且返回该元素的值 list.pop(index),有返回值
  • 移除列表中某个值的第一个匹配项 list.remove(obj),无返回值
  • 反向列表中元素 list.reverse(),无返回值
  • 对原列表进行永久排序(无返回值) list.sort(cmp=None, key=None, reverse=False)

        在最后补充了一个sorted函数实现临时排序,有返回值

        接下来一个个的举个例子便于理解

注 :有返回值的都可以赋值给一个变量,这点放在前面

1、len(list)函数

参数

  • list -- 要计算元素个数的列表。

返回值

  • 返回列表元素个数。

示例

list1, list2 = [123, 'xyz', 'zara'], [456, 'abc']
print("First list length : ", len(list1))
print("Second list length : ", len(list2))

输出

First list length : 3
Second lsit length : 2

2、max(list)函数

参数

  • list -- 要返回最大值的列表。

返回值

  • 返回列表元素中的最大值。

示例

list1, list2 = ['123', 'xyz', 'zara', 'abc'], [456, 700, 200]
print("Max value element : ", max(list1))
print("Max value element : ", max(list2))

输出

Max value element : zara
Max value element : 700

注:列表元素是字符串的同字符串比较,比较 ACSII 码

3、min(list)函数

参数

  • list -- 要返回最小值的列表。

返回值

  • 返回列表元素中的最小值。

示例

list1, list2 = [123, 'xyz', 'zara', 'abc'], [456, 700, 200]
print("min value element : ", min(list1))
print("min value element : ", min(list2))

输出

min value element : 123
min value element : 200

4、 list.append(obj)方法

参数

  • obj -- 添加到列表末尾的对象。

返回值

  • 该方法无返回值,但是会修改原来的列表。

示例1

aList = [123, 'xyz', 'zara', 'abc']
aList.append( 2009 )
print("Updated List : ", aList)

输出

Updated List : [123, 'xyz', 'zara', 'abc', 2009]

示例2

name = list("scott")
print(name)
name.append(list(" tiger"))
print(name)

输出

['s', 'c', 'o', 't', 't']
['s', 'c', 'o', 't', 't', [' ', 't', 'i', 'g', 'e', 'r']]

注:append 把 list(" tiger") 这个列表当成一个元素追加上去了,若想实现 [’s’, ‘c’, ‘o’, ‘t’, ‘t’, ’ ‘, ‘t’, ‘i’, ‘g’, ‘e’, ‘r’]的效果,则见 extend 函数 或利用 分片赋值

分片赋值

示例

name = list("scott")
print(name)
name[len(name):] = list(" tiger")
print(name)

输出

['s', 'c', 'o', 't', 't']
['s', 'c', 'o', 't', 't', ' ', 't', 'i', 'g', 'e', 'r']

5、 list.extend(seq)方法

参数

  • seq -- 元素列表。

返回值

  • 该方法没有返回值,但会在已存在的列表中添加新的列表内容。

示例1

aList = [123, 'xyz', 'zara', 'abc', 123]
bList = [2009, 'manni']
aList.extend(bList)
print("Extended List : ", aList)

输出

Extended List : [123, 'xyz', 'zara', 'abc', 123, 2009, 'manni']

示例2

name = list("scott")
print(name)
name.extend(list(" tiger"))
print(name)

输出

['s', 'c', 'o', 't', 't']
['s', 'c', 'o', 't', 't', ' ', 't', 'i', 'g', 'e', 'r']

6、list.count(obj)方法

参数

  • obj -- 列表中统计的对象。

返回值

  • 返回元素在列表中出现的次数。

示例

aList = [123, 'xyz', 'zara', 'abc', 123]
print("Count for 123 : ", aList.count(123))
print("Count for zara : ", aList.count('zara'))

输出

Count for 123 : 2
Count for zara : 1

7、list.index(obj, start, end)方法

         包含起始下标,不包含终止下标,从列表中找出 第一个(注意是第一个)与目标值匹配项的索引位置

参数

  • obj-- 查找的对象。
  • start-- 可选,查找的起始位置,默认0。
  • end-- 可选,查找的结束位置,默认查找到最后。

返回值

  • 该方法返回查找对象的索引位置,如果没有找到对象则抛出异常。

示例

aList = [123, 'xyz', 'runoob', 'abc']
print("xyz 索引位置: ", aList.index('xyz'))
print("runoob 索引位置 : ", aList.index('runoob', 1, 3))

输出

xyz 索引位置: 1
runoob 索引位置 : 2

8、list.insert(index, obj)方法

参数

  • index -- 对象 obj 需要插入的索引位置。
  • obj -- 要插入列表中的对象。

返回值

  • 该方法没有返回值,但会在列表指定位置插入对象。

示例

aList = [123, 'xyz', 'zara', 'abc']
aList.insert( 3, 2009)
print("Final List : ", aList)

输出

Final List : [123, 'xyz', 'zara', 2009, 'abc']

9、list.pop(index)方法

参数

  • obj -- 可选参数,要移除列表元素的索引值,不能超过列表总长度,默认为 index=-1,删除最后一个列表值。

返回值

  • 该方法返回从列表中移除的元素对象。

示例

list1 = ['Google', 'Runoob', 'Taobao']
list_pop=list1.pop(1)
print("删除的项为 :", list_pop)
print("列表现在为 : ", list1)

输出

删除的项为 : Runoob
列表现在为 : ['Google', 'Taobao']

10、list.remove(obj)方法

参数

  • obj -- 列表中要移除的对象。

返回值

  • 该方法没有返回值但是会移除列表中的某个值的 第一个 匹配项。

示例

aList = [123, 'xyz', 'zara', 'abc', 'xyz']
aList.remove('xyz')
print("List : ", aList)
aList.remove('abc')
print("List : ", aList)

输出

List : [123, 'zara', 'abc', 'xyz']
List : [123, 'zara', 'xyz']

11、list.reverse()方法

参数

  • NA。

返回值

  • 该方法没有返回值,但是会对列表的元素进行反向排序。

示例

aList = [123, 'xyz', 'zara', 'abc', 'xyz']
aList.reverse()
print("List : ", aList)

输出

List : ['xyz', 'abc', 'zara', 'xyz', 123]

12、list.sort(cmp=None, key=None, reverse=False)方法

参数

  • cmp -- 可选参数, 如果指定了该参数会使用该参数的方法进行排序。
  • key -- 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
  • reverse -- 排序规则,reverse = True 降序, reverse = False 升序(默认)。

返回值

  • 该方法没有返回值,但是会对列表的对象进行排序。

示例默认升序排序

aList = [123, 'Google', 'Runoob', 'Taobao', 'Facebook'];
aList.sort();
print("List : ", aList)

输出

List : [123, 'Facebook', 'Google', 'Runoob', 'Taobao']

示例降序输出列表

vowels = ['e', 'a', 'u', 'o', 'i']
vowels.sort(reverse=True)
print('降序输出:', vowels)

输出

降序输出: ['u', 'o', 'i', 'e', 'a']

示例通过指定列表中的元素排序来输出列表

# 获取列表的第二个元素
def takeSecond(elem):
    return elem[1]
random = [(2, 2), (3, 4), (4, 1), (1, 3)]
random.sort(key=takeSecond) # 指定第二个元素排序
print('排序列表:', random)

输出

排序列表:[(4, 1), (2, 2), (1, 3), (3, 4)]

13、sorted(iterable, cmp=None, key=None, reverse=False)函数

参数

  • iterable -- 可迭代对象。
  • cmp -- 比较的函数,这个具有两个参数,参数的值都是从可迭代对象中取出,此函数必须遵守的规则为,大于则返回1,小于则返回-1,等于则返回0。
  • key -- 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
  • reverse -- 排序规则,reverse = True 降序 , reverse = False 升序(默认)。

返回值

  • 返回重新排序的列表。

示例

a = [5,7,6,3,4,1,2]
b = sorted(a)
print(a)
print(b)

输出

[5, 7, 6, 3, 4, 1, 2]
[1, 2, 3, 4, 5, 6, 7]

示例 利用cmp函数 、 利用key

L=[('b',2),('a',1),('c',3),('d',4)]
sorted(L, cmp=lambda x,y:cmp(x[1],y[1]))  # 利用cmp函数
print(L)
sorted(L, key=lambda x:x[1]) # 利用key
print(L)  

输出

[('a', 1), ('b', 2), ('c', 3), ('d', 4)]
[('a', 1), ('b', 2), ('c', 3), ('d', 4)]

        注: key 和 reverse 比一个等价的 cmp 函数处理速度要快。这是因为对于每个列表元素,cmp 都会被调用多次,而 key 和 reverse 只被调用一次

示例降序排

students = [('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10)]
sorted(students, key=lambda s: s[2])            # 按年龄排序
print(students)
sorted(students, key=lambda s: s[2], reverse=True)       # 按降序
print(students)

输出

[('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]
[('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10)]

sort 方法 与 sorted 函数 的区别

sort 是应用在 list 上的方法,sorted 可以对所有可迭代的对象进行排序操作。

list 的 sort 方法返回的是对已经存在的列表进行操作,无返回值,而内联函数 sorted 方法返回的是一个新的
list,而不是在原来的基础上进行的操作。

posted on 2021-06-09 19:22  雾恋过往  阅读(689)  评论(0编辑  收藏  举报

Live2D