上一篇中有写过简单数据类型,除了字符串和数字两个简单的数据类型外,还有List类型。
在python中,列表也称为序列,python中基本的数据结构,和c、java中的数组类似。第一个索引是0,用中括号[]来表示列表,用逗号来分隔其中的元素。
#filename 1_14.py
fruit = ['apple','mango','banana']
print(fruit)
在python中,列表中的元素不需要具有相同的类型。
List = [‘google’,’mango’,1897,2000];
在python中可以使用range()创建数字列表。
#filename 1_15.py
numbers = list(range(1,4)) #使用range创建列表
print(numbers)
even_numbers = list(range(2,11,2)) #后面的2步长为2
print(even_numbers)
访问列表中的值,因为列表是一个有序集合,只要知道该元素的位置或索引即可
Fruit = [‘mango’,’apple’]
Print(fruit[0]) #输出mango
在python中,字符串还可以通过序号(序号从0开始)来取出其中的某个字符。
‘abcde.[1]’取出的值是’b
#filename 1_16.py
list1 = [1,2,3,4,5,6,7];
print("list1[1:5]",list1[1:5])
list2 = ['apple','mango','grape']
print(list2[0])
print(list2[-1])
#filename 1_17.py
list = ['apple','mango','grape']
print(list)
list[0] = 'strawberry'
print(list)
在列表中插入新的元素有两种方法:
1、在列表中插入元素
在python程序中,使用insert()可以在列表的任何位置添加新元素,在插入时需要指定新元素的索引和值。
List.insert(index,obj)
Index:元素obj需要插入的索引位置
Obj:将要插入列表中的元素。
Insert()没有返回值,但会在列表的指定位置插入新的元素。
#filename 1_18.py
list = ['apple','mango','grape']
print(list)
list.insert(0,'strawberry')
print(list)
2、在列表末尾插入元素
使用append()可以在列表末尾添加新的元素。
List.append(obj)
参数“obj”表示添加到列表末尾的元素。
#filename 1_19.py
list = ['apple','mango','grape']
print(list)
list.append('strawberry')
print(list)
创建动态列表
通过append()可以方便地动态创建列表,例如可以先创建一个空列表,然后使用一系列的append()语句添加新的元素。
Fruit = []
Fruit.append(‘apple’)
Fruit.append(‘mango’)
Print(fruit) #[‘apple’,‘mango’]
在列表中删除元素有三种方式:
1、使用del语句删除元素
如果知道要删除元素在列表中具体位置,可以使用del语句实现删除功能。
#filename 1_20.py
list = ['apple','mango','grape']
print(list)
del list[0]
print(list)
2、使用pop()删除元素
在python程序中,当将某个元素从列表中删除后,有时需要接着使用这个元素的值。例如web应用程序中,将某个用户从活跃成员列表中删除后,接着可能需要将这个用户加入到非活跃成员列表中。
通过pop()可删除列表末尾的元素,并且能够接着使用它。
List.pop(obj=list[-1])
参数obj是一个可选参数,表示要移除列表元素。
#filename 1_21.py
list = ['apple','mango','grape']
print(list)
list.pop[1]
print(list)
3、根据元素值删除元素
不知道从列表中删除的值所处的位置。如果只知道要删除的元素值,使用remove()实现。
List.remove(obj)
Obj表示要移除的元素。
#filename 1_22.py
list = ['apple','mango','grape']
print(list)
list.remove('apple')
print(list)
注意:remove只会删除第一个指定的值,如果要删除的值可能在列表中出现多次,就需要使用循环来判断是否删除了所有这样的值。
列表排列
使用sort()对列表中元素进行排序。
List.sort([func])
#filename 1_23.py
list = ['apple','mango','grape']
print(list)
list.sort()
print(list)
list.sort(reverse=True)
print(list)
使用sorted()对列表进行临时排序
既想保留列表元素原来的排列顺序,又想以特定的顺序
#filename 1_24.py
list = ['apple','mango','grape']
print(list)
print(sorted(list))
print(list)
倒序输出列表中的信息
List.reverse(),会改变原始序列
#filename 1_25.py
list = ['apple','mango','grape']
print(list)
list.reverse()
print(list)
获取列表的长度
Len(list)
参数list表示要计算元素个数的列表,执行后会返回列表元素的个数
#filename 1_26.py
list1 = ['apple','mango','grape']
print (len(list1))
list2 = list(range(5)) #创建一个0~4的列表list2
print(len(list2))
列表中的运算符
Python表达式 | 结果 | 描述 |
Len([1,2,3]) | 3 | 长度 |
[1,2,3]+[4,5,6] | [1,2,3,4,5,6] | 组合 |
[‘hi’]*4 | [‘hi’,‘hi’,‘hi’,‘hi’] | 重复 |
3 in[1,2,3] | True | 显示元素是否存在与列表中 |
For x in [1,2,3]:print x, | 1 2 3 | 迭代 |
列表的截取与拼接
可以使用“L”表达式实现列表截取与字符串操作功能,L=[‘Google’,’Apple’,’Taobao’]
截取操作的结果
Python表达式 | 结果 | 描述 |
L[2] | ‘Taobao’ | 读取第三个元素 |
L[-2] | ’Apple’ | 从右侧倒数第二个元素 |
L[1:] | [’Apple’,’Taobao’] | 输出从第二个元素开始后的所有元素 |
#filename 1_28.py
L = ['apple','mango','grape']
print (L[2])
print (L[-2])
print (L[1:])
列表嵌套
#filename 1_29.py
a = ['a','b','c']
b = [1,2,3]
x = [a,b]
print(x)
print(x[0])
print(x[0][1])
获取列表元素中的最大值和最小值
可以通过方法max()获取列表元素中的最大值,
Max(list)
Min(list)
追加其他列表中的值
可以通过方法extend()在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
List.extend(seq)
参数“seq”表示要追加的列表,没有返回值
#filename 1_30.py
list1 = ['apple','mango','banana']
list2 = list(range(5))
list1.extend(list2)
print("扩展后的列表:",list1)
在列表中统计某元素出现的次数
通过count()在列表中统计某元素出现的次数
List.count(obj)
Obj表示要统计的列表元素,count()返回值是在列表中出现的次数
#filename 1_31.py
list1 = [12,'apple','mango',12,'banana']
print("统计12的个数:",list1.count(12))
print("统计apple的个数:",list1.count('apple'))
清空列表中的元素
Clear()清空列表中元素,
List.clear()
复制列表中元素
copy()复制列表中的元素,可以创建一个新的列表
List.copy(),返回 复制后的新列表
List2=list1.copy()
获取列表中某个元素的索引
使用方法index()获取列表中某个元素的具体索引位置。只能从列表中找出某个元素值第一次出现的索引位置。如果没有找到对象抛出异常
List.index(obj)
Obj表示将要查找的列表对象。
List1.index(‘mango’)