百木园-与人分享,
就是让自己快乐。

Python: list列表的11个内置方法

前言

在实际开发中,经常需要将一组(不只一个)数据存储起来,以便后边的代码使用。在VBA中有使用数组,可以把多个数据存储

到一起,通过数组下标可以访问数组中的每个元素。Python 中没有数组,但是加入了更加强大的列表(list)。下面就对列表的内

置方法进行介绍。

在这里插入图片描述

通过dir(list)可以查看列表的属性和内置方法。
print(dir(list))
Python学习交流Q群:906715085###
[\'__add__\', \'__class__\', \'__contains__\', \'__delattr__\', \'__delitem__\', \'__dir__\', \'__doc__\', \'__eq__\', \'__format__\', \'__ge__\', \'__getattribute__\', \'__getitem__\', \'__gt__\', \'__hash__\', \'__iadd__\', \'__imul__\', \'__init__\', \'__init_subclass__\', \'__iter__\', \'__le__\', \'__len__\', \'__lt__\', \'__mul__\', \'__ne__\', \'__new__\', \'__reduce__\', \'__reduce_ex__\', \'__repr__\', \'__reversed__\', \'__rmul__\', \'__setattr__\', \'__setitem__\', \'__sizeof__\', \'__str__\', \'__subclasshook__\', \'append\', \'clear\', \'copy\', \'count\', \'extend\', \'index\', \'insert\', \'pop\', \'remove\', \'reverse\', \'sort\']

 

可以看出,列表有11个内置方法。
1  append()、extend()、insert()方法

2  clear()、remove()、pop()方法 

3  count()、index()方法

4  sort()、reverse()方法

5  copy()方法 

在这里插入图片描述

1 append()、extend()、insert()方法

list.append(obj)

obj – 表示到添加到列表末尾的数据,它可以是单个元素,也可以是列表、元组等。

在列表的末尾追加元素。

Python学习交流Q群:906715085###
list1 = [\'Python\', \'C++\', \'Java\']

# 追加元素
list1.append(\'PHP\')
print(list1)

#追加元组,整个元组被当成一个元素
t = (\'JavaScript\', \'C#\', \'Go\')
list1.append(t)
print(list1)

#追加列表,整个列表被当成一个元素
list1.append([\'Ruby\', \'SQL\'])
print(list1)

 

[\'Python\', \'C++\', \'Java\', \'PHP\']
[\'Python\', \'C++\', \'Java\', \'PHP\', (\'JavaScript\', \'C#\', \'Go\')]
[\'Python\', \'C++\', \'Java\', \'PHP\', (\'JavaScript\', \'C#\', \'Go\'), [\'Ruby\', \'SQL\']]

 


	list.extend(seq)

seq – 元素列表,可以是列表、元组、集合、字典,若为字典,则仅会将键(key)作为元素依次添加至原列表的末尾。

在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)。

extend() 和 append() 的不同之处在于:extend() 不会把列表或元组视为一个整体,而是把它们包含的元素逐个添加到列表中。

Python学习交流Q群:906715085###
list2 = [\'Python\', \'C++\', \'Java\']

# 追加元素
list2.extend(\'C\')
print(list2)

# 追加元组,元祖被拆分成多个元素
t = (\'JavaScript\', \'C#\', \'Go\')
list2.extend(t)
print(list2)

# 追加列表,列表被拆分成多个元素
list2.extend([\'Ruby\', \'SQL\'])
print(list2)

 

[\'Python\', \'C++\', \'Java\', \'C\']
[\'Python\', \'C++\', \'Java\', \'C\', \'JavaScript\', \'C#\', \'Go\']
[\'Python\', \'C++\', \'Java\', \'C\', \'JavaScript\', \'C#\', \'Go\', \'Ruby\', \'SQL\']

 

list.insert(index, obj)

index – 对象obj需要插入的索引位置。

obj – 要插入列表中的对象。

将指定对象插入列表的指定位置。

list3 = [\'Google\', \'Runoob\', \'Taobao\']

list3.insert(1, \'Baidu\')
print (\'列表插入元素后为 : \', list3)
列表插入元素后为 : [\'Google\', \'Baidu\', \'Runoob\', \'Taobao\']

 

在这里插入图片描述

2 clear()、remove()、pop()方法

list.clear()

清空列表,类似于del a[:]。

list1 = [\'Google\', \'Runoob\', \'Taobao\', \'Baidu\']
list2 = [\'Google\', \'Runoob\', \'Taobao\', \'Baidu\']

list1.clear()
del list2[:]

print(\"列表清空后的list1: \", list1)
print(\"列表清空后的list2: \", list2)
列表清空后的list1: []
列表清空后的list2: []
list.remove(obj)

 

移除列表中某个值的第一个匹配项。

list1 = [\'Google\', \'Baidu\', \'Runoob\', \'Taobao\', \'Baidu\']

list1.remove(\'Taobao\')
print (\"列表现在为 : \", list1)

list1.remove(\'Baidu\')
print (\"列表现在为 : \", list1)
列表现在为 : [\'Google\', \'Baidu\', \'Runoob\', \'Baidu\']
列表现在为 : [\'Google\', \'Runoob\', \'Baidu\']
list.pop([index=-1])

 

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

移除列表中的一个元素(默认最后一个元素),并且返回该元素的值。

list1 = [\'Google\', \'Runoob\', \'Taobao\']

print(list1.pop())
print (\"列表现在为 : \", list1, end=\"\\n\\n\")

print(list1.pop(0))
print (\"列表现在为 : \", list1)
Taobao
列表现在为 : [\'Google\', \'Runoob\']

Google
列表现在为 : [\'Runoob\']

 

3 count()、index()方法

list.count(obj)

统计某个元素在列表中出现的次数。

aList = [123, \'Google\', \'Runoob\', \'Taobao\', 123];

print (\"123 元素个数 : \", aList.count(123))
print (\"Runoob 元素个数 : \", aList.count(\'Runoob\'))
123 元素个数 : 2
Runoob 元素个数 : 1
list.index(x[, start[, end]])

 

start -- 可选,查找的起始位置。

end --  可选,查找的结束位置。

从列表中找出某个值第一个匹配项的索引位置,如果没有找到对象则抛出异常。
list1 = [\'Google\', \'Runoob\', \'Taobao\', \'Runoob\', \'QQ\']

print (\'Runoob 索引值为\', list1.index(\'Runoob\'))
print (\'Runoob 索引值为\', list1.index(\'Runoob\',2,4))
Runoob 索引值为 1
Runoob 索引值为 3

 

在这里插入图片描述

4 sort()、reverse()方法

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

 


key -- 指定在进行比较前要在每个列表元素上调用的函数(或其他可调用对象)。

reverse -- 排序规则,reverse = True 降序, reverse = False 升序(默认)。
aList = [\'Google\', \'Runoob\', \'Taobao\', \'Facebook\']

aList.sort()    # 升序排列
print(\"List : \", aList)
List : [\'Facebook\', \'Google\', \'Runoob\', \'Taobao\']
# 获取序列的第二个元素
def take_second(elem):
    return elem[1]

# 列表
list1 = [(2, 2), (3, 4), (4, 1), (1, 3)]

# 指定第二个元素,升序排列
list1.sort(key=take_second)

# 输出类别
print(\'排序后的列表:\', list1)
排序后的列表:[(4, 1), (2, 2), (1, 3), (3, 4)]

 

对于排序,Python中还有一个 sorted() 内置函数。两者的区别在于,list.sort() 方法会直接修改原列表(并返回 None 以避免混

淆),而 sorted() 内置函数会返回一个新的排序后的列表。

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

new_tuples = sorted(student_tuples, key=lambda student: student[2])   # sort by age

print(\"排序前:\",student_tuples)
print(\"排序后:\",new_tuples)
排序前:[(\'john\', \'A\', 15), (\'jane\', \'B\', 12), (\'dave\', \'B\', 10)]
排序后:[(\'dave\', \'B\', 10), (\'jane\', \'B\', 12), (\'john\', \'A\', 15)]
list.reverse()

 


对列表的元素进行反向排序。
list1 = [\'Google\', \'Runoob\', \'Taobao\', \'Baidu\']
list1.reverse()
print (\"列表反向排序后: \", list1)

 

列表反向排序后: [\'Baidu\', \'Taobao\', \'Runoob\', \'Google\']

5 copy()方法

list.copy()

复制列表,类似于 a[:]。

注意:list.copy()方法所遵循的拷贝原理,是浅拷贝,也就是说,只拷贝父对象,不会拷贝对象内部的子对象。关于深拷贝和浅拷

贝的更多内容,参见

文末的延伸阅读[1]。

a = [1, 2, [3, 4], 5, 6]
b = a.copy()

a.append(7)
a[2][1] = 10

print(\"a = \", a)
print(\"b = \", b)
a = [1, 2, [3, 10], 5, 6, 7]
b = [1, 2, [3, 10], 5, 6]

 

可以看出,列表a中新增元素,对列表b没有影响;但是如果修改了a中的列表对象,同样也会影响到b。

在这里插入图片描述


来源:https://www.cnblogs.com/123456feng/p/16178845.html
本站部分图文来源于网络,如有侵权请联系删除。

未经允许不得转载:百木园 » Python: list列表的11个内置方法

相关推荐

  • 暂无文章