【Python操作基础】——列表操作

简介: 【Python操作基础】——列表操作

【Python操作基础】系列——列表操作,建议收藏!

该篇文章首先利用Python展示了使用列表类型数据的相关操作,包括基本用法;切片操作;反向遍历;类型转换;extend和append的区别;列表推导式;删除和插入;常用操作函数等。

1 基本用法

 运行程序:

myList1 = [21,22,23,24,25,26,27,28,29] myList1

myList2=myList1 myList2

myList3=list(“Data”) myList3

myList1[-1] #倒数第几个

myList1[-9]

#myList1[9] #报错:超过边界

2 切片操作

  运行程序:

myList1 = [21,22,23,24,25,26,27,28,29]
myList1
myList1[1:8]   #第2个到第个
myList1[1:8:2]  #步长为2
myList1[:5]   #第1个到第5个
myList1[:]   #所有
myList1[2:]  #第3个到最后
myList1[:-1]  #第1个到倒数第2个

运行结果:

[21, 22, 23, 24, 25, 26, 27, 28, 29]
[22, 23, 24, 25, 26, 27, 28]
[22, 24, 26, 28]
[21, 22, 23, 24, 25]
[21, 22, 23, 24, 25, 26, 27, 28, 29]
[23, 24, 25, 26, 27, 28, 29]
29

3 反向遍历

  运行程序:

myList1 = [21,22,23,24,25,26,27,28,29]
myList1
myList1[::-1]   #倒序
myList1
myList1[:-1]    
reversed(myList1) #返回值为一个迭代器
list(reversed(myList1)) #list强制转换显示内容
myList1
myList1.reverse()#内置函数不改变列表本身
myList1

运行结果:

[21, 22, 23, 24, 25, 26, 27, 28, 29]
[29, 28, 27, 26, 25, 24, 23, 22, 21]
[21, 22, 23, 24, 25, 26, 27, 28, 29]
[21, 22, 23, 24, 25, 26, 27, 28]
<list_reverseiterator at 0x26c0cdc18d0>
[29, 28, 27, 26, 25, 24, 23, 22, 21]
[21, 22, 23, 24, 25, 26, 27, 28, 29]
[29, 28, 27, 26, 25, 24, 23, 22, 21]

4 类型转换

  运行程序:

list("chaolemen")

运行结果:

['c', 'h', 'a', 'o', 'l', 'e', 'm', 'e', 'n']

5 extend与append的区别

  运行程序:

from IPython.core.interactiveshell import InteractiveShell
InteractiveShell.ast_node_interactivity = "all"       ##执行多输出
myList1 = [21,22,23,24,25,26,27,28,29]
myList2=myList1
myList1 + myList2
myList1 = [21,22,23,24,25,26,27,28,29]
myList2=myList1
myList1.extend(myList2) #列表1上后面加列表2,以成员身份追加
myList1
myList1.append(myList2)#平等追加
myList1
myList1 = [1,2,3,4,5,6,7,8,9]
myList3 = [11,12,13,14,15,16,17,18,19]
[i + j for i, j in zip(myList1, myList3)]  #两个列表数值相加

运行结果:

[21, 22, 23, 24, 25, 26, 27, 28, 29, 21, 22, 23, 24, 25, 26, 27, 28, 29]
[21, 22, 23, 24, 25, 26, 27, 28, 29, 21, 22, 23, 24, 25, 26, 27, 28, 29]
[21, 22, 23, 24, 25, 26, 27, 28, 29, 21, 22, 23, 24, 25, 26, 27, 28, 29, [...]]
[12, 14, 16, 18, 20, 22, 24, 26, 28]

6 列表推导式

  运行程序:

[2 for i in range(20)]
[i for i in range(1, 21)]
[i for i in range(1, 21, 2)]
range(10)
list(range(0,10,2))
[type(item) for item in [True,"1",1,1.0]]
print([ord(i) for i in ['朝', '乐', '门']])
["input/%d.txt" % i + "dd%d" % i for i in range(5)]#可以用字符串的占位符
["input/%d.txt"%i + "_%d" %i for i in range(5)]

运行结果:

[2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
[1, 3, 5, 7, 9, 11, 13, 15, 17, 19]
range(0, 10)
[0, 2, 4, 6, 8]
[bool, str, int, float]
[26397, 20048, 38376]
['input/0.txtdd0',
 'input/1.txtdd1',
 'input/2.txtdd2',
 'input/3.txtdd3',
 'input/4.txtdd4']
['input/0.txt_0',
 'input/1.txt_1',
 'input/2.txt_2',
 'input/3.txt_3',
 'input/4.txt_4']

7 删除与插入

  运行程序:

lst_1 = [10,10,11,12,13,14,15]
lst_1.insert(1, 8) #插入insert(插入下标位置, 插入值)
lst_1
lst_1 = [10,10,11,12,13,14,15]
lst_1.pop(2)       #删除列表下标为2的值
lst_1
lst_1 = [10,10,11,12,13,14,15]
del lst_1[2]   #下标删除
lst_1
lst_1 = [10,10,11,12,13,14,15]
lst_1.remove(10) #只删除第一个10
lst_1
lst_1 = [10,10,11,12,11,13,14,15]
for i in lst_1 :
 if i == 11: 
     lst_1.remove(i)  #删除11
print(lst_1)
lst_1 = [10,10,11,12,11,13,14,15]
[x for x in lst_1 if x != 10]  #删除所有10
lst_1 = [10,10,11,12,11,13,14,15]
list(filter(lambda i:i!=10, lst_1)) #过滤10
lst_1 = [10,10,11,12,11,13,14,15]
list(set(lst_1))#过滤重复值

运行结果:

[10, 8, 10, 11, 12, 13, 14, 15]
11
[10, 10, 12, 13, 14, 15]
[10, 10, 12, 13, 14, 15]
[10, 11, 12, 13, 14, 15]
[10, 10, 12, 13, 14, 15]
[11, 12, 11, 13, 14, 15]
[11, 12, 11, 13, 14, 15]
[10, 11, 12, 13, 14, 15]

8 常用操作函数

  运行程序:

lst_1 = [10,10,11,12,13,14,15]
len(lst_1) #列表长度
lst_1 = [10,10,11,12,11,13,14,15]
sorted(lst_1) #列表排序,正序,不改变原序列
lst_1
lst_1 = [10,10,11,12,11,13,14,15]
lst_1.sort()  #列表排序,正序,改变原序列
lst_1
lst_1 = [10,10,11,12,11,13,14,15]
lst_2=[11,12,13,14]     #1列表后加2列表,加一整个列表
lst_1.append(lst_2) 
print(lst_1)
lst_1 = [10,10,11,12,11,13,14,15]
lst_2=[11,12,13,14]
lst_1.extend(lst_2)   # #1列表后加2列表,直接原列表后面加
print(lst_1)
lst_1 = [1,2,3,'Python',True,4.3,None]
lst_2 = [1,2,[2,3]]
print(lst_1, lst_2)  #依次输出两个列表
lst_1 = [1,2,3,'Python',True,4.3,None]
list(reversed(lst_1))  #倒序列表
reversed(lst_1)  #倒序列表,输出格式
lst_1 
[1, 2, 3, 'Python', True, 4.3, None]
lst_1 = [1,2,3,'Python',True,4.3,None]
lst_1.reverse()#倒序列表
lst_1
str1=[1,2,3,4,5]
str2=[20,21,23,24,25]
print(zip(str1,str2))#两列表同步运算,输出格式
print(list(zip(str1,str2)))  #强制转化为值
str1=["a","about","c","china","b","beijing"]
[x.upper() for x in str1 if len(x)>1]    #输出列表中长度大于1的字符串
[x**2 for x in range(10)]  #列表运算
str1=["a","about","c","china","b","beijing"]
[str2.upper() for str2 in str1 if len(str2)>1]#输出列表1中长度大于1的字符串
myList=[2,3,5,6,7,3,2]
list(enumerate(myList))#内置函数
 
i=0
sum=0
for value in myList:
    i=i+1
    sum=value+i
sum
sum=0
[dict((value,i) for i, value in enumerate(myList))]

运行结果:

7
[10, 10, 11, 11, 12, 13, 14, 15]
[10, 10, 11, 12, 11, 13, 14, 15]
[10, 10, 11, 11, 12, 13, 14, 15]
[10, 10, 11, 12, 11, 13, 14, 15, [11, 12, 13, 14]]
[10, 10, 11, 12, 11, 13, 14, 15, 11, 12, 13, 14]
[1, 2, 3, 'Python', True, 4.3, None] [1, 2, [2, 3]]
[None, 4.3, True, 'Python', 3, 2, 1]
<list_reverseiterator at 0x2cd44ac2f28>
[1, 2, 3, 'Python', True, 4.3, None]
[1, 2, 3, 'Python', True, 4.3, None]
[None, 4.3, True, 'Python', 3, 2, 1]
<zip object at 0x000002CD42AA2E48>
[(1, 20), (2, 21), (3, 23), (4, 24), (5, 25)]
['ABOUT', 'CHINA', 'BEIJING']
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
['ABOUT', 'CHINA', 'BEIJING']
[(0, 2), (1, 3), (2, 5), (3, 6), (4, 7), (5, 3), (6, 2)]
9
[{2: 6, 3: 5, 5: 2, 6: 3, 7: 4}]


相关文章
|
3天前
|
数据挖掘 Python
Python文件读取操作详解
Python文件读取操作详解
8 1
|
3天前
|
存储 Python
Python字典的定义与操作详解
Python字典的定义与操作详解
4 1
|
3天前
|
索引 Python
Python集合的定义与操作详解
Python集合的定义与操作详解
3 1
|
3天前
|
存储 索引 Python
Python数据容器的切片操作详解
Python数据容器的切片操作详解
5 1
|
3天前
|
索引 Python
Python字符串的定义与操作详解
Python字符串的定义与操作详解
6 1
|
3天前
|
存储 索引 Python
Python元组的定义与操作详解
Python元组的定义与操作详解
4 1
|
3天前
|
存储 索引 Python
Python列表的循环遍历详解
Python列表的循环遍历详解
5 1
|
3天前
|
索引 Python
Python 列表(List)
Python 列表(List)
|
4天前
|
SQL 关系型数据库 MySQL
Python 操作 MySQL 数据库
Python 操作 MySQL 数据库
16 0
|
4天前
|
存储 索引 Python
Python列表
Python列表