• 运维特工,战胜心魔!!
  • 有些事情其实没有那么难,只是我们感觉难,走出第一步!
  • 你所浪费的今天,是昨天死去的人奢望的明天!!!
  • 欢迎访问 unixfbi.com 运维特工社区http://unixfbi.com/
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧
  • 运维特工:http://www.unixfbi.com
  • 人生没有白走的路,每一步都算数!!
  • 空杯心态,沉淀自己!

Python-列表

Python unixfbi 1年前 (2018-08-12) 3398次浏览 已收录 0个评论 扫描二维码
文章目录[隐藏]

Python-列表

一、Python 列表介绍

Python 有 6 个序列的内置类型,但最常见的是列表和元组。
list 是一种有序的集合,可以随时添加和删除其中的元素。
序列都可以进行的操作包括索引,切片,加,乘,检查成员。

此外,Python 已经内置确定序列的长度以及确定最大和最小的元素的方法。

列表是最常用的 Python 数据类型,它可以作为一个方括号内的逗号分隔值出现。

列表的数据项不需要具有相同的类型。

二、常用操作

1.创建 list

>>> list1 = ['A','B','C','D']
>>> list1
['A', 'B', 'C', 'D']

2.获取列表中的元素

list1 = ['A','B','C','D','E','F']

根据位置索引获取值:

list1[0]
'A'

获取一个元素范围:

list1 = ['A','B','C','D','E','F']
list1[1:5]
['B', 'C', 'D', 'E']

这样获取的是列表第 2 个值和第 4 个值,list 切片取值范围是开始值,不包括结束值,应该是结束位置-1。

3.更新列表元素

使用append()为列表追加数据:
append()是在 list 末尾追加数据。

>>> list2=['A','B','C']
>>> list2.append('D')
>>> list2.append('E')
>>> list2
['A', 'B', 'C', 'D', 'E']

在 list 指定位置添加值:
使用insert()方法
insert()介绍:
insert(self, index, object, /)
Insert object before index.

可以看出是添加到了指定索引位置值的前面

>>> list2=['A','B','C']
>>> list2.insert(2,'D')    
>>> list2
['A', 'B', 'D', 'C']

更新指定位置的元素:

>>> list2 = ['A','B','C','D','E']
>>> list2[2] = 'F'                 
>>> list2
['A', 'B', 'F', 'D', 'E']

替换指定范围的元素:

>>> list2 = ['a','b','c','d','e','f']
>>> list2[2:5] = ['C','D','E']
>>> list2
['a', 'b', 'C', 'D', 'E', 'f']

4.删除列表元素

移除指定范围元素:
方法一:

>>> list2 = ['a','b','c','d','e','f']
>>> list2[2:5] = []
>>> list2
['a', 'b', 'f']

方法二:del list2[2:5]

>>> list2 = ['a','b','c','d','e','f']
>>> del list2[2:5]
>>> list2
['a', 'b', 'f']

清空整个列表:
方法一:

>>> list2 = ['a','b','c','d','e','f']
>>> list2[:] = []
>>> list2
[]

方法二:list.clear()

>>> list2 = ['a','b','c','d','e','f']
>>> list2.clear()
>>> list2
[]

删除指定位置元素:

>>> list2 = ['A','B','C']    
>>> del list2[1]
>>> list2
['A', 'C']

使用del()方法,这个方法也可以删除列表指定范围的元素

删除列表中某个值的第一个匹配项:
使用remove()方法

>>> list2 = ['A','E','C','D','E']
>>> list2.remove('E')
>>> list2
['A', 'C', 'D', 'E']

移除列表元素:
使用pop()方法,移除列表中的一个元素(默认是移除最后一个元素),并且返回该元素的值。

>>> list2 = ['A','E','C','D','E']
>>> list2.pop()
'E'
>>> list2
['A', 'E', 'C', 'D']

>>> list2.pop(2)
'C'
>>> list2
['A', 'E', 'D']

5.列表嵌套

列表可以嵌套另外的列表

>>> list1 = ['a','b','c']
>>> list2 = [1,2,3]
>>> list3 = [list1,list2]
>>> list3
[['a', 'b', 'c'], [1, 2, 3]]
>>> list3[0]
['a', 'b', 'c']
>>> list3[0][2]
'c'
>>> list3[1][2]
3

6.列表脚本操作符

列表对 + 和 * 的操作符与字符串相似。+ 号用于组合列表,* 号用于重复列表。

Python 表达式 结果 描述
len([1,2,3]) 3 计算列表长度
[1,2,3] + [4,5,6] [1, 2, 3, 4, 5, 6] 组合两个列表
['ABC'] * 4 ['ABC', 'ABC', 'ABC', 'ABC'] 重复列表元素
3 in [1,2,3] True 判断元素是否存在列表中
for x in [1,2,3]: print(x); 1 2 3 迭代列表元素

7.Python 列表截取

列表如下:

list1 = ['A','B','C','D','E']
Python 表达式 结果 描述
list1[2] 'C' 读取列表中第三个元素
list1[-2] 'D' 读取列表中倒数第二个元素
list1[1:] ['B', 'C', 'D', 'E'] 从第二个元素开始截取列表
list1[:-1] ['A', 'B', 'C', 'D'] 从倒数第二个元素开始截取列表

三、Python 列表函数与方法

1.列表的函数

序号 函数 含义
1 len(list) 列表元素个数
2 max(list) 返回列表元素最大值
3 min(list) 返回列表元素最小值
4 list(seq) 将元组转换为列表

举例:
len(list)计算列表长度

>>> len([1,2,3,4,5]) 
5

max(list) 返回列表元素最大值

>>> max([1,2,3,4,5])
5

min(list) 返回列表元素最小值

>>> min([1,2,3,4,5])
1

list(str) 将字符串转换为列表

>>> name = "abcdedf"
>>> list(name)
['a', 'b', 'c', 'd', 'e', 'd', 'f']

2.Python 列表方法

append(): 在列表末尾添加新元素
append(self, object, /)
Append object to the end of the list.

clear(): 移除列表所有元素
clear(self, /)
Remove all items from list.

copy():列表复制
copy(self, /)
Return a shallow copy of the list.

count(): 查看一个元素在列表中出现的次数
count(self, value, /)
Return number of occurrences of value.

举例:

>>> list1 = ['a','b','c','d','a','a']
>>> list1.count('a')                 
3

extend(): 在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
extend(self, iterable, /)
Extend list by appending elements from the iterable.

举例:

>>> list2 = [1,2,3,4]
>>> list1.extend(list2)
>>> list1
['a', 'b', 'c', 'd', 'a', 'a', 1, 2, 3, 4]
>>> list2.extend(list1)
>>> list2
[1, 2, 3, 4, 'a', 'b', 'c', 'd', 'a', 'a', 1, 2, 3, 4]
>>> 

index(): 从列表中找出某个值第一个匹配项的索引位置;
index(self, value, start=0, stop=9223372036854775807, /)
Return first index of value.
Raises ValueError if the value is not present.

举例:

>>> list1 = ['a','b','c','d','a','a']
>>> list1.index('a')
0
>>> list1.index('b')
1
>>> list1.index('d')                 
3

insert(): 在指定位置插入元素
insert(self, index, object, /)
Insert object before index.

举例:

>>> list2.insert(3,'c')
>>> list2
[1, 2, 3, 'c', 4, 5]
>>> list2.insert(1,'c')
>>> list2
[1, 'c', 2, 3, 'c', 4, 5]
>>> list2.insert(0,'c')
>>> list2
['c', 1, 'c', 2, 3, 'c', 4, 5]

pop():移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
pop(self, index=-1, /)
Remove and return item at index (default last).
Raises IndexError if list is empty or index is out of range.

举例:

>>> list2 = [1,2,3,4,5]
>>> list2.pop()
5
>>> list2.pop(1)
2
>>> list2
[1, 3, 4]

remove(): 移除列表中某个值的第一个匹配项;
remove(self, value, /)
Remove first occurrence of value.
Raises ValueError if the value is not present.

举例:

>>> list1 = ['a','b','c','d','a','a']
>>> list1.remove('a')
>>> list1
['b', 'c', 'd', 'a', 'a']
>>> list1.remove('a')
>>> list1
['b', 'c', 'd', 'a']

reverse(): 反向列表中元素
reverse(self, /)
Reverse *IN PLACE*.

>>> list1 = [1,2,3,4,5,6]
>>> list1.reverse()      
>>> list1
[6, 5, 4, 3, 2, 1]

sort(): 对原列表元素进行排序;
sort(self, /, *, key=None, reverse=False)
Stable sort *IN PLACE*.

举例:

>>> list1 = [4,6,1,2,0,6,3,5]
>>> list1.sort()
>>> list1
[0, 1, 2, 3, 4, 5, 6, 6]

>>> list2 = ['a','c','b','f','e']
>>> list2.sort()
>>> list2
['a', 'b', 'c', 'e', 'f']

四、思考题

1.list 删除重复元素

方法一:

>>> list1 = [1,2,3,2,2,3,4]
>>> my_list = list(set(list1))
>>> print(my_list)
[1, 2, 3, 4]

方法二:

#!/usr/bin/python3
list1 = ['A','B','C','A','B','C','A']
list2 = []
for i in list1:
    if not i in list2:
        list2.append(i)
print(list2)

out:

['A', 'B', 'C']

2.list 删除一个重复出现的元素

#!/usr/bin/python3
list1 = ['A','B','C','A','B','C','A']
for i in range(list1.count('A')):
    pos_list1_of = list1.index('A')
    list1.pop(pos_list1_of)
print(list1)

['B', 'C', 'B', 'C']

参考文档

http://www.runoob.com/python/python-lists.html
http://www.runoob.com/python3/python3-list.html
https://www.w3cschool.cn/python/python-lists.html
https://www.w3cschool.cn/python3/python3-list.html


UnixFBI 运维特工 , 版权所有丨如未注明 , 均为原创丨 转载请务必注明原文链接http://www.unixfbi.com/552.html
喜欢 (0)
[支付宝]
分享 (0)
unixfbi
关于作者:
运维工程师一枚,做有价值的事情!
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址