python学习——列表
文章底部有测试代码 感兴趣可以拿去跑一下 注释写的也比较详细 如果有什么疑惑请私信 |
列表的概念
Python列表的定义
Python中的列表,是由一系列按照特定顺序排列的元素组成。是Python中内置的可变的序列。
列表可以存放整数、实数、字符串、列表、元组等任何形式的内容,并且在一个列表中,可以存放多种不同类型的元素。
1.使用赋值运算符直接创建列表
语法格式
listname = [element1, element2, element3,…,element n]
listname是列表的名称,中括号里的内容为列表中的元素
列表特点:没有个数限制,也不限制元素类型(只要是Python支持的数据类型都可以)
list1 = [1,2,3,‘我是中国人’,12.00,[‘数据1’,‘数据2’]]
2.创建空链表
Python中,可以创建空格列表
语法格式:
emptylist = [ ]
3.range()
用法及作用:
Python3 range() 函数返回的是一个可迭代对象(类型是对象),而不是列表类型, 所以打印的时候不会打印列表。
Python3 list() 函数是对象迭代器,可以把range()返回的可迭代对象转为一个列表,返回的变量类型为列表。
Python2 range() 函数返回的是列表。
函数语法:
range(stop)
range(start, stop[, step])
参数说明:
start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5);
stop: 计数到 stop 结束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4:]没有5
step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)
示例:
>>>range(5)
range(0, 5)
>>> for i in range(5):
... print(i)
...
0
1
2
3
4
>>> list(range(5))
[0, 1, 2, 3, 4]
>>> list(range(0))
[]
>>>
4.append()
用法及作用:
append() 方法用于在列表末尾添加新的对象。
函数语法:
list.append(obj)
参数:
obj – 添加到列表末尾的对象。
实例:
list1 = ['Google', 'Runoob', 'Taobao']
list1.append('Baidu')
print ("更新后的列表 : ", list1)
结果:
更新后的列表 : [‘Google’, ‘Runoob’, ‘Taobao’, ‘Baidu’]
5.extend()
用法及作用
extend() 函数用于在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
函数语法
list.extend(seq)
参数:
seq – 元素列表。
实例:
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’]
6.insert()
用法及作用
将元素增加到指定位置
函数语法
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’]
7.pop()
用法及作用
删除并返回指定位置(默认最后一个)上的元素
函数语法
list.pop([index=-1])
参数:
obj – 可选参数,要移除列表元素的索引值,不能超过列表总长度,默认为 index=-1,删除最后一个列表值。
实例:
list1 = ['Google', 'Runoob', 'Taobao']
list_pop=list1.pop(1)
print "删除的项为 :", list_pop
print "列表现在为 : ", list1
结果:
删除的项为 : Runoob
列表现在为 : [‘Google’, ‘Taobao’]
8.remove()
用法及作用
删除首次出现的指定元素
函数语法
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’]
9.切片操作 (可以转至:切片操作详解)
用法及作用
python中的切片操作功能十分强大,通常我们利用切片来进行提取信息,进行相关的操作,
函数语法
列表名[起始位置:终止位置:步长]
实例:
list=[1,2,3,4,5,6,7,8,9,10]
print(list[::-1])#倒着切 结果:[10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
print(list[::2])# 结果:[1, 3, 5, 7, 9]
print(list[1::2])#从下标为1的元素开始切 结果:[2, 4, 6, 8, 10]
list[::5]=[6,1]#依次替换从列表中切片出来的俩个数 注意如果用切片选定元素进行替换的话 切片出来的元素个数一定要和替换元素的个数相等 否则会报错
print(list)#结果:[6, 2, 3, 4, 5, 1, 7, 8, 9, 10]
del list[::3]#删掉切片的第三个
print(list)#结果:[2, 3, 5, 1, 8, 9]
结果:
看上面代码注释
10.sort()
用法及作用
sort() 函数用于对原列表进行排序,如果指定参数,则使用比较函数指定的比较函数。
函数语法
list.sort( key=None, reverse=False)
参数:
key – 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
reverse – 排序规则,reverse = True 降序, reverse = False 升序(默认)。
实例:
aList = ['Google', 'Runoob', 'Taobao', 'Facebook']
aList.sort()
print ( "List : ", aList)
# 列表
vowels = ['e', 'a', 'u', 'o', 'i']
# 降序
vowels.sort(reverse=True)
# 输出结果
print ( '降序输出:', vowels )
# 获取列表的第二个元素
def takeSecond(elem):
return elem[1]
# 列表
random = [(2, 2), (3, 4), (4, 1), (1, 3)]
# 指定第二个元素排序
random.sort(key=takeSecond)
# 输出类别
print ('排序列表:', random)
结果:
List : [‘Facebook’, ‘Google’, ‘Runoob’, ‘Taobao’]
降序输出: [‘u’, ‘o’, ‘i’, ‘e’, ‘a’]
排序列表:[(4, 1), (2, 2), (1, 3), (3, 4)]
代码备份:
#列表的创建
print('1')#结果:1
list1 = []
list2 =[1,2,3]
print(list1)#结果:[]
print(list2)#结果:[1, 2, 3]
print(list1+list2)#结果:[1, 2, 3]
print(list2[0])#结果:1
del list2[2]#删除列表中的第3个元素
print(list2)# 结果:[1, 2]
#range()函数
for i in range(0,10):
print(i)#结果:0到9有换行
print(list(range(10)))
#在python3中用range返回的是一个可操作的对象 而不是在python2中返回的是一个列表 所以这个时候需要用list将返回的对象转换成列表
#结果:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
#append() 方法:在列表尾部追加元素
list2.append(4)#在list2尾部追加一个元素4
print(list2)# 结果:[1, 2, 4]
#extend() 方法:将一个列表增加到另一个列表尾部
list3=[1,1,1]
list2.extend(list3)#将list3增加到list2尾部
print(list2)#结果:[1, 2, 4, 1, 1, 1]
list2.extend([2,2,2,'wtu'])
print(list2)#结果:[1, 2, 4, 1, 1, 1, 2, 2, 2, 'wtu']
#insert() 方法:将元素增加到指定位置
list2.insert(3,6)#在下标为3的位置增加元素6
print(list2)#结果:[1, 2, 4, 6, 1, 1, 1, 2, 2, 2, 'wtu']
#pop() 方法:删除并返回指定位置(默认最后一个)上的元素
print(list2.pop())#打印返回的参数 结果:wtu
print(list2)#打印删除后的结果 结果:[1, 2, 4, 6, 1, 1, 1, 2, 2, 2]
print(list2.pop(0))#指定删除下标为0的元素 结果:1
print(list2)#结果:[2, 4, 6, 1, 1, 1, 2, 2, 2]
#remove() 方法:删除首次出现的指定元素
list2.remove(2)#删除列表中第一次出现的2
print(list2)#结果:[4, 6, 1, 1, 1, 2, 2, 2]
#切片操作[起始位置:终止位置:步长] 若步长为负数表示从后往前切
list=[1,2,3,4,5,6,7,8,9,10]
print(list[::-1])#倒着切 结果:[10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
print(list[::2])# 结果:[1, 3, 5, 7, 9]
print(list[1::2])#从下标为1的元素开始切 结果:[2, 4, 6, 8, 10]
list[::5]=[6,1]#依次替换从列表中切片出来的俩个数 注意如果用切片选定元素进行替换的话 切片出来的元素个数一定要和替换元素的个数相等 否则会报错
print(list)#结果:[6, 2, 3, 4, 5, 1, 7, 8, 9, 10]
del list[::3]#删掉切片的第三个
print(list)#结果:[2, 3, 5, 1, 8, 9]
#列表排序
list3=[10,1,4,5,7,3,8,2,9,0]
list3.sort()#默认升序
print(list3)#排序完成 结果:[0, 1, 2, 3, 4, 5, 7, 8, 9, 10]
list3.sort(reverse=True) #传入reverse=True变成降序
print(list3)#结果:[10, 9, 8, 7, 5, 4, 3, 2, 1, 0]
#使用内置函数sorted()进行排序
print(sorted(list3))#sorted有返回值 返回列表 sort()是直接在列表上进行操作 结果:[0, 1, 2, 3, 4, 5, 7, 8, 9, 10]
print(sorted(list3,reverse=True))#降序 结果:[10, 9, 8, 7, 5, 4, 3, 2, 1, 0]
#用于序列操作的常用内置函数
#1.len(list) 求列表长度的函数
print(len(list3))#列表长度为10 结果:10
#2.sum(list) 列表求和
print(sum(list3))#结果:49
#3.max/min(list) 求列表最大值/最小值
print('list3的最大值为:',max(list3))#结果:list3的最大值为: 10
print(min(list3))#结果:0
#创建元组
tuple=(1,2,3,4,5)
print(tuple)#结果:(1, 2, 3, 4, 5)
print(type(tuple))#type()返回元素类型 结果:<class 'tuple'>
tuple1=(1)
print(tuple1)#结果:1
print(type(tuple1))#结果:<class 'int'>
tuple2=(1,)
print(tuple2)#结果:(1,)
print(type(tuple2))#结果:<class 'tuple'>
list=[1,2,3]
tuple=tuple(list)#将list转换为tuple型
print(tuple)
print(type(tuple))