一、列表
列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现。
列表的数据项不需要具有相同的类型。
创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可。
1. 构建列表
number=[1,2,3,4,5]#一般列表
print(number)
list=["ncepu",123,2.2,True,[1,2,3]]#混合列表
print(list)
empty=[]#空列表
print(empty)
2. 访问列表中的值
使用下标索引来访问列表中的值,同样也可以使用方括号的形式截取字符:
注意列表索引值是从0开始的。
list1 = ['Google', 'Runoob', 1997, 2000];
list2 = [1, 2, 3, 4, 5, 6, 7 ];
print ("list1[0]: ", list1[0])
print ("list2[1:5]: ", list2[1:5])
输出:
list1[0]: Google
list2[1:5]: [2, 3, 4, 5]
3. 向列表中添加元素
- append()函数
append()函数用来在列表末尾添加新的对象,只接受一个参数,对象可以是任意数据类型,输出结果保留原有数据类型。
number=[1,2,3,4,5]
number.append(2.2)
print(number)
number.append([6,7,8])#对象为列表,输出时整个列表作为一个对象输出。
print(number)
输出为:
[1, 2, 3, 4, 5, 2.2]
[1, 2, 3, 4, 5, 2.2, [6, 7, 8]]
- extend()函数
extend()函数原理是使用一个列表扩展另一个列表,所以参数应是一个列表。
number=[1,2,3,4,5]#一般列表
number.extend([6,7,8])
print(number)
a=len(number)
print(a)
输出为:
[1, 2, 3, 4, 5, 6, 7, 8]
8
注:
extend()函数的对象只能为一个列表,列表可以有多个数据。
也可以用“+”来实现列表拓展,但应注意“+”两边类型相同。
list*3、list*=3均为合法语句(列表数据重复3次)。
list1=[123 , 456]
list2=[456 , 123]
list3=list1+list2
print(list3)
- insert()函数
insert()函数有两个参数,第一个参数表示插入的位置,第二个参数表示插入的内容。其中位置从0开始计数。
number=[1,2,3,4,5]
number.insert(0,0)
number.insert(3,9)
print(number)
输出为:
[0, 1, 2, 9, 3, 4, 5]
4. 从列表删除元素
- remove()函数
使用remove()函数可以移除列表中的元素,且只需要知道元素的名称,不需要知道元素在列表中的位置。
number=[1,2,3,4,5]
number.remove(2)
print(number)
- del语句
number=[1,2,3,4,5]
del number[4]
print(number)
输出为:
[1, 2, 3, 4]
注:
del后面不用加(.);
用del语句需要知道元素的索引号。
del加列表的名字可以把整个列表删掉,如del number。
- pop()函数
number=[1,2,3,4,5]
name=number.pop()
print(number)
print(name)
输出为:
[1, 2, 3, 4]
5
注:
pop函数后不加参数时默认删除最后一个元素;
用pop函数删除的值在IDLE中可以显示出来,所以可以给删除的值命名并打印出来。
pop函数后加上参数(索引值)可以删除指定位置的元素:
number=[1,2,3,4,5,6]
name=number.pop(4)
print(number)
print(name)
输出为:
[1, 2, 3, 4, 6]
5
5. 列表切片
number=[1,2,3,4,5,6]
list1=number[2:4]#索引值从0开始
list2=number[:4]#默认从头开始
list3=number[2:]#默认到结尾
list4=number[:]#copy原列表,原列表的值改变不影响得到的新列表
print("list1=:" , list1)
print("list2=:" , list2)
print("list3=:" , list3)
print("list4=:" , list4)
输出为:
list1=: [3, 4]
list2=: [1, 2, 3, 4]
list3=: [3, 4, 5, 6]
list4=: [1, 2, 3, 4, 5, 6]
6. 列表的常用操作符
列表的常用操作符有:
- 比较操作符
- 逻辑操作符
- 连接操作符
- 重复操作符
- 成员关系操作符
- 列表的比较
列表有多个元素时,从第0个元素开始比较,若满足不等式,即为True。
list1=[123 , 456]
list2=[456 , 123]
print(list1>list2)
print(list1<list2)
False
True
- 判断列表中的元素:
list1=[123 , 456 , [7 , 8 , 9 ] ]
print(123 in list1)
print(456 not in list1)
print(7 in list1)
print(7 in list1[2])
True
False
False
True
注:上例说明in或者not in不能判断列表中的列表的元素是否存在,需要加入索引号。
- 访问列表中列表的元素(类似二元数组):
list1=[123 , 456 , [7 , 8 , 9 ] ]
print(list1[2][0])
输出为:7
- 得到列表中某元素的个数:count()函数
list1=[123 ,123, 456 , [7 , 8 , 9 ] ]
print(list1.count(123))
输出为2。
- 得到参数在列表中的位置:index()函数
list1=[1,2,3,1,2,3,4,5,6,[7,8,9] ]
a=list1.index(3)#出现的第一个位置
b=list1.index(3,3,6)#后两个参数限定所求值在列表中的位置
#c=list1.index(8)#index()不能得到列表中列表的参数位置
print("a=:",a)
print("b=:",b)
#print("c=:",c)
输出为:
a=: 2
b=: 5
- 将整个列表前后翻转:reverse()函数
list1=[1,2,3,1,2,3,4,5,6,[7,8,9] ]
list1.reverse()
print(list1)
输出为:
[[7, 8, 9], 6, 5, 4, 3, 2, 1, 3, 2, 1]
- 用指定的方法对列表成员进行排序:sort()函数
list1=[3,5,2,77,33,21,423,1,4]
list2=[3,5,2,77,33,21,423,1,4]
list1.sort()#默认从小到大排
list2.sort(reverse=True)#翻转,从大到小
print(list1)
print(list2)
元组
Python 的元组与列表类似,不同之处在于元组的元素不能修改。
元组使用小括号,列表使用方括号。
元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。
- 创建和访问一个元组
tuple1=(1,2,3,4,5,6,7,8)
a=tuple1[3]
b=tuple1[:5]#切片同列表
print(a)
print(b)
temp1=(1)
print(type(temp1))
temp2=2,3,4
print(type(temp2))
temp3=1,
print(type(temp3))
输出为:
4
(1, 2, 3, 4, 5)
<class 'int'>
<class 'tuple'>
<class 'tuple'>
注:
元组的切片、拷贝同列表;
是否为元组是由逗号决定的,而非小括号。
- 更新和删除一个元组
tuple1=(1,2,3,4,5,6,7,8)
tuple2=tuple1[:3]+(9,)+tuple1[3:]
print(tuple2)
注:
运用切片的原理向元组中添加元素,实质是把元组从指定位置切开在加入新元组;
添加的部分,小括号、逗号均不能缺少;
del tuple1可以删除整个元组。
- 元组相关的操作符
- 拼接操作符“+”;
- 重复操作符“*”;
- 关系操作符“>”“<”等;
- 成员操作符“in”“not in”;
- 逻辑操作符“and”“or”“not”。
参考文献
https://www.runoob.com/python3/python3-tuple.html
https://www.bilibili.com/video/av4050443/?p=15