Python列表

                 关于Python列表的操作

      Python列表是线性表的一种表示方式。Python列表中所存储元素的具体含义,在不同的情况下可以不同,它可以是一个数,也可以是字符串,甚至是更复杂的信息。它可以存储Python的标准类型,也可以存储自定义的数据结构及对象。Python对列表也提供了非常便捷的操作,列表可以执行pop、sort、append、remove等操作,也可以合并其它列表,或者将列表切片(切分出子列表)。

1.创建列表

      列表是一个有序的,可修改的,元素以逗号分隔的,用中括号包围的序列。

#存储整形的列表
name0 = [1,3,4,2,6,5,0]
#存储字符串类型的列表
name1 = ['卢阿涛','张三','李四','王五']
#存储浮点类型的列表
name2 = [1.2,3.2,55.3,0.2]
#存储不同数据类型的列表
name3 = [2,'卢阿涛',1.3,True]
#存储嵌套类型的列表
name4 = [2,'lu',[1,2,3,'你好'],3,[3,1.2]]
#打印输出列表
print(name0)
print(name1)
print(name2)
print(name3)
print(name4)

输出结果:

[1, 3, 4, 2, 6, 5, 0]
[‘卢阿涛’, ‘张三’, ‘李四’, ‘王五’]
[1.2, 3.2, 55.3, 0.2]
[2, ‘卢阿涛’, 1.3, True]
[2, ‘lu’, [1, 2, 3, ‘你好’], 3, [3, 1.2]]

2.访问列表

      Python语言中访问列表数据,可以直接使用下标索引访问列表中的单个数据项,也可以使用截取运算符访问子列表。下标范围从0到列表长度减1。
Temp = m[n] 获取m列表的第n+1个位置处的元素
访问列表的单个数据项

#存储整形的列表
name0 = [1,3,4,2,6,5,0]
#访问第一个元素和第三个元素
print('%d %d' % (name0[0],name0[2]))

#存储字符串类型的列表
name1 = ['卢阿涛','张三','李四','王五']
#访问第一个元素和第三个元素
print("第一个元素的值:"+ name1[0] +" "+ "第二个元素的值:"+ name1[2])

#存储浮点类型的列表
name2 = [1.2,3.2,55.3,0.2]
#访问第一个元素和第三个元素
print('%.2f,%.2f' %(name2[0],name2[2]))

#存储不同数据类型的列表
name3 = [2,'卢阿涛',1.3,True]
#访问第一个元素和第三个元素
print('%d,%.2f'%(name3[0],name3[2]))

#存储嵌套类型的列表
name4 = [2,'lu',[1,2,3,'你好'],3,[3,1.2]]
#访问第一个元素和第三个元素
print('%d' % (name4[0]))
print(name4[2])

输出结果:

1 4
第一个元素的值:卢阿涛 第二个元素的值:李四
1.20,55.30
2,1.30
2
[1, 2, 3, ‘你好’]

在Python语言中,print不能直接输出浮点、整数等数值类型。用print输出数值类型时,需要使用格式化运算符。当访问嵌套列表元素时,需要使用多个下标进行访问。

访问列表中的子列表
访问列表中的子表可以用“[:]”运算符. List[start:end] start是其实索引,end是终止索引,该运算符访问包括start在内到end(不包括end)范围内的列表元素,返回值仍然是一个列表。

#存储整形的列表
name0 = [1,3,4,2,6,5,0]
#访问第一个元素到第三个元素
print(name0[:3])#print(name0[0:4])

#存储字符串类型的列表
name1 = ['卢阿涛','张三','李四','王五']
#访问第二个元素到第三个元素
print(name1[1:3])

#存储浮点类型的列表
name2 = [1.2,3.2,55.3,0.2]
#访问第三个元素到第最后一个元素
print(name2[2:])#print(name2[2:4])

#存储不同数据类型的列表
name3 = [2,'卢阿涛',1.3,True]
#访问第二个元素到第三个元素
print(name3[1:3])

#存储嵌套类型的列表
name4 = [2,'lu',[1,2,3,'你好'],3,[3,1.2]]
#访问第二个元素到第四个元素
print(name4[1:4])

输出结果:

[1, 3, 4]
[‘张三’, ‘李四’]
[55.3, 0.2]
[‘卢阿涛’, 1.3]
[‘lu’, [1, 2, 3, ‘你好’], 3]

3.添加元素

向python列表里面添加元素主要有三种方法:

方法描述
append()在列表的尾部添加一个元素,一次只能添加一个
extend()在列表的尾部添加一个列表
insert()在列表的特定位置添加元素,特定位置是元素在列表中的位置索引号
#存储整形的列表
name0 = [1,3,4,2,6,5,0]
name0.append(8) #在末尾添加一个8
name0.extend([2,4,6]) #在末尾添加2,4,6
name0.insert(1,8) #在第2个位置添加一个8

#存储字符串类型的列表
name1 = ['卢阿涛','张三','李四','王五']
name1.append("赵柳") #在末尾添加一个赵柳
name1.extend(["a","b","c"])#在末尾添加a,b,c
name1.insert(1,'A')#在第2个位置添加一个A

#存储浮点类型的列表
name2 = [1.2,3.2,55.3,0.2]
name2.append(8.8) #在末尾添加一个8.8
name2.extend([2.8,4.8,6.8])#在末尾添加2.8,4.8,6.8
name2.insert(1,8.8)#在第2个位置添加一个8.8

#存储不同数据类型的列表
name3 = [2,'卢阿涛',1.3,True]
name3.append(8) #在末尾添加一个8
name3.extend([2,4,6])#在末尾添加2,4,6
name3.insert(1,8)#在第2个位置添加一个8

#存储嵌套类型的列表
name4 = [2,'lu',[1,2,3,'你好'],3,[3,1.2]]
name4.append(8) #在末尾添加一个8
name4.extend([[2,4,6]])#在末尾添加2,4,6
name4.insert(1,8)#在第2个位置添加一个8

#打印输出列表
print(name0)
print(name1)
print(name2)
print(name3)
print(name4)

输出结果:

[1, 8, 3, 4, 2, 6, 5, 0, 8, 2, 4, 6]
[‘卢阿涛’, ‘A’, ‘张三’, ‘李四’, ‘王五’, ‘赵柳’, ‘a’, ‘b’, ‘c’]
[1.2, 8.8, 3.2, 55.3, 0.2, 8.8, 2.8, 4.8, 6.8]
[2, 8, ‘卢阿涛’, 1.3, True, 8, 2, 4, 6]
[2, 8, ‘lu’, [1, 2, 3, ‘你好’], 3, [3, 1.2], 8, [2, 4, 6]]

4.删除元素

python列表的删除列表里面的一些元素也有三种方法:

方法描述
remove()从左往右删除一个指定的元素
Del删除掉列表里面的索引号位置为n 的元素或整个列表,del是Python内置功能,不是列表独有
pop()将列表的最后一个元素返回,并在此基础上删除 ,返回值是列表最后一个元素
#存储整形的列表
name0 = [1,3,4,2,6,5,0]
name0.remove(3) #删除值为3的从左到右的第一个元素
del name0[2] #删除第3个位置元素
temp = name0.pop()  #删除最后一个元素,并返回最后一个元素的值
print("返回的值是:")
print(temp)

#存储字符串类型的列表
name1 = ['卢阿涛','张三','李四','王五']
name1.remove("张三") #删除值为张三的从左到右的第一个元素
del name1[2] #删除第3个位置元素
temp = name1.pop()  #删除最后一个元素,并返回最后一个元素的值
print("返回的值是:")
print(temp)

#存储浮点类型的列表
name2 = [1.2,3.2,55.3,0.2]
name2.remove(3.2) #删除值为3.2的从左到右的第一个元素
del name2[2] #删除第3个位置元素
temp = name2.pop()  #删除最后一个元素,并返回最后一个元素的值
print("返回的值是:")
print(temp)

#存储不同数据类型的列表
name3 = [2,'卢阿涛',1.3,True]
name3.remove(True) #删除值为True的从左到右的第一个元素
del name3[2] #删除第3个位置元素
temp = name3.pop()  #删除最后一个元素,并返回最后一个元素的值
print("返回的值是:")
print(temp)

#存储嵌套类型的列表
name4 = [2,'lu',[1,2,3,'你好'],3,[3,1.2]]
name4.remove([3,1.2]) #删除值为[3,1,2]的从左到右的第一个元素
del name4[2] #删除第3个位置元素
temp = name4.pop()  #删除最后一个元素,并返回最后一个元素的值
print("返回的值是:")
print(temp)

#打印输出列表
print(name0)
print(name1)
print(name2)
print(name3)
print(name4)

输出结果:

返回的值是:
0
返回的值是:
李四
返回的值是:
55.3
返回的值是:
卢阿涛
返回的值是:
3
[1, 4, 6, 5]
[‘卢阿涛’]
[1.2]
[2]
[2, ‘lu’]

5.修改元素的值

修改列表元素可以采用访问列表元素的方法,在赋值运算符(=)左边使用访问运算符可以更新单个数据项或多个数据项.


#存储整形的列表
name0 = [1,3,4,2,6,5,0]
name0[0] = 8 #将第一个位置的值改为8
name0[1:3] = [5,9]#将第二个位置到第三个位置的值分别改为5,9

#存储字符串类型的列表
name1 = ['卢阿涛','张三','李四','王五']
name1[0] = 'luatao' #将第一个位置的值改为luatao
name1[1:3] = ['zhangsan','lisi']#将第二个位置到第三个位置的值分别改为zhangsan,lisi

#存储浮点类型的列表
name2 = [1.2,3.2,55.3,0.2]
name2[0] = 8.8 #将第一个位置的值改为8.8
name2[1:3] = [5.8,9.8]#将第二个位置到第三个位置的值分别改为5.8,9.8


#存储不同数据类型的列表
name3 = [2,'卢阿涛',1.3,True]
name3[0] = 8 #将第一个位置的值改为8
name3[1:3] = [2.3,'luatao']#将第二个位置到第三个位置的值分别改为2.3,'luatao'


#存储嵌套类型的列表
name4 = [2,'lu',[1,2,3,'你好'],3,[3,1.2]]
name4[0] = [2,3,4]  #将第一个位置的值改为[2,3,4]
name4[1:3] = [5,'nihao']  #将第二个位置到第三个位置的值分别改为5,nihao


#打印输出列表
print(name0)
print(name1)
print(name2)
print(name3)
print(name4)

输出结果:

[8, 5, 9, 2, 6, 5, 0]
[‘luatao’, ‘zhangsan’, ‘lisi’, ‘王五’]
[8.8, 5.8, 9.8, 0.2]
[8, 2.3, ‘luatao’, True]
[[2, 3, 4], 5, ‘nihao’, 3, [3, 1.2]]

6.查找元素的值

列表没有find方法 但有三种基本查找方法:

方法描述
Count计数,返回要计数的元素在列表中出现的次数
Index查找,从左往右返回查找到的第一个指定元素的索引号,如果没有找到,报错
In查找元素是够在列表中,在输出true,不在输出false
#存储整形的列表
name0 = [1,3,4,2,6,5,0,3,2]
temp = name0.count(2)#计算2在列表中出现的次数
print("2在列表中出现的次数:" ,temp)
print("2出现的下标:",name0.index(2))# 从左到右第一次出现2的下标
print("2在4到9之间第一次出现的下标:",name0.index(2,4,9))#在区间索引号4到9(不包含9)的第一次出现值为2的索引号
print(3 in name0)#判断3在name0列表里
print(3 not in name0)#判断3不在name0列表里

输出结果:

2在列表中出现的次数: 2
2出现的下标: 3
2在4到9之间第一次出现的下标: 8
True
False

7.排序

     Python提供了列表的内置函数sort方法和通用函数sorted方法对列表进行排序。

方法描述
sort(key=None, reverse=False)其默认排序规则是,如果列表中的元素都是数字,按照从小到大升序排序;如果元素都是字符串,则会按照字符表顺序升序排序
sorted方法是Python语言提供的适用于可迭代数据类型的排序方法。使用方法和list的sort方法相同,唯一不同的是sorted方法不改变原列表元素的顺序,而是返回一个排序后的列表。
reverse()列表反转 第一个变为最后一个,最后一个变为第一个
#存储整形的列表
name0 = [1,3,4,2,6,5,0,3,2]
print('原来的列表:',name0)
name0.sort()#按从小到大排序
print("排序后的列表:",name0)
name0.reverse()#对列表翻转
print('翻转后的列表:',name0)

#存储字符串类型的列表
name1 = ['have','you','love','i']
name1.sort(reverse = True)#直接降序排序
print('降序后的列表:',name1)
print()#换行

name2 = [3,2,4,5,7,2,2]
print('初始列表:',name2)
temp = sorted(name2)#按从小到大排序,不改变原来列表的位置
print('原来列表的:',name2)
print('返回的列表:',temp)

输出结果:

原来的列表: [1, 3, 4, 2, 6, 5, 0, 3, 2]
排序后的列表: [0, 1, 2, 2, 3, 3, 4, 5, 6]
翻转后的列表: [6, 5, 4, 3, 3, 2, 2, 1, 0]
降序后的列表: [‘you’, ‘love’, ‘i’, ‘have’]

初始列表: [3, 2, 4, 5, 7, 2, 2]
原来列表的: [3, 2, 4, 5, 7, 2, 2]
返回的列表: [2, 2, 2, 3, 4, 5, 7]

8.遍历列表

三种遍历方法:

#存储字符串类型的列表
name0 = ['have','you','love','i']
#列表迭代遍历
print('第一种遍历方法:利用迭代遍历')
for i in name0:
    print("序号:%s   值:%s" %(name0.index(i)+1,i))
#列表索引遍历
print('第二种遍历方法:利用索引遍历')
for i in range(len(name0)):
    print("序号:%s   值:%s" % (i + 1,name0[i]))
#应用枚举方式遍历
print('第三种遍历方法:利用枚举方法遍历')
for i ,st in enumerate(name0):
    print("序号:%s   值:%s" % (i + 1,st))

输出结果:

第一种遍历方法:利用迭代遍历
序号:1 值:have
序号:2 值:you
序号:3 值:love
序号:4 值:i
第二种遍历方法:利用索引遍历
序号:1 值:have
序号:2 值:you
序号:3 值:love
序号:4 值:i
第三种遍历方法:利用枚举方法遍历
序号:1 值:have
序号:2 值:you
序号:3 值:love
序号:4 值:i

9.常用的列表操作符

符号描述
+主要实现的是多个列表之间的拼接
*主要实现的是列表的赋值和添加
>,<主要进行数据类型列表的元素的比较
and等逻辑运算符,可以进行列表之间的逻辑判断
m = [1,2,3,4]
n = [5,6,7,8,9]
c = m + n #实现两个列表的合并
print("+之后列表c:",c)
m*=3 #实现对列表的扩充
print('*扩充后的列表',m)
print(m>n)  #从左到右依次比较列表元素的大小
print(m<n and m>c)

输出结果:

+之后列表c: [1, 2, 3, 4, 5, 6, 7, 8, 9]
*扩充后的列表 [1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4]
False
False

10.列表的拷贝

对于python里面想要进行列表的复制,有两种

操作描述
1.深拷贝:n = m[:]对列表进行完全复制,如果改变m的值,n不受影响
2.浅拷贝 n = m对列表名起一个别名,如果改变m的值,n会发生变化
m = [1,2,3,4]
print('浅拷贝')
print('初始化m的值:',m)
n = m #对m进行浅拷贝
print('拷贝的n的值:',n)
m[1] = 1#改变m的值
print('改变后m的值:',m)
print('改变后n的值:',n)
print()#换行

m = [1,2,3,4]
print('深拷贝')
print('初始化m的值:',m)
n = m[:] #对m进行深拷贝
print('拷贝的n的值:',n)
m[1] = 1#改变m的值
print('改变后m的值:',m)
print('改变后n的值:',n)
print()#换行

输出结果:

浅拷贝
初始化m的值: [1, 2, 3, 4]
拷贝的n的值: [1, 2, 3, 4]
改变后m的值: [1, 1, 3, 4]
改变后n的值: [1, 1, 3, 4]

深拷贝
初始化m的值: [1, 2, 3, 4]
拷贝的n的值: [1, 2, 3, 4]
改变后m的值: [1, 1, 3, 4]
改变后n的值: [1, 2, 3, 4]

    本来只是打算整理一下所学的知识,没有想到一个列表就整理了这么多的知识点,也耗费了我不少的时间(用了一上午)。不过我认为还是值得了,起码这些知识我都牢牢的记住了,一段时间内是不会忘了。加油!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值