列表
列表是Python中基础数据类型之一,其他语言中也有类似列表的数据类型,例如js中叫数组,它是以[]括起来的,每个元素以逗号隔开,而且它里面可以存放各种数据类型。
列表相对于字符串来说,不仅可以存储不同的数据类型,而且可以存储大量数据,而且列表是有序的,有索引值,可切片,方便取值。
列表的操作:增删改查
增:append、insert、extend
1.append;增加到最后
li = [1, 2, 'a', 'b', 4, 'd'] li.append('e') print(li)
结果输出:
[1, 2, 'a', 'b', 4, 'd', 'e']
2.insert;按照索引去增加
li = [1, 2, 'a', 'b', 4, 'd'] li.insert(2, 3) print(li)
结果输出:
[1, 2, 3, 'a', 'b', 4, 'd']
3.extend;迭代的增加
li = [1, 2, 'a', 'b', 4, 'd'] li.extend(['q,a,w', 'aaa']) li.extend(['abc','def']) li.extend('你好') print(li)
结果输出:
[1, 2, 'a', 'b', 4, 'd', 'q,a,w', 'aaa', 'abc', 'def', '你', '好']
删:pop()、del、remove()、clear()
1.pop();按照位置去删除,有返回值,默认删除最后一个
li = [1, 2, 'a', 'b', 4, 'd'] list1 = li.pop() list2 = li.pop(1) print(list1) print(list2) print(li)
结果输出:
d 2 [1, 'a', 'b', 4]
2.del;按照位置去删除,也可切片删除,没有返回值
li = [1, 2, 'a', 'b', 4, 'd'] del li[2:4] print(li)
结果输出:
[1, 2, 4, 'd']
3.remove;按照元素去删除
li = [1, 2, 'a', 'b', 4, 'd'] li.remove('a') li.remove('b') print(li)
结果输出:
[1, 2, 4, 'd']
4.clear();清空列表
li = [1, 2, 'a', 'b', 4, 'd'] li.clear() print(li)
结果输出:
[]
改:直接替换索引对应的元素,可使用索引方式进行替换
例1:
li = [1, 2, 'a', 'b', 4, 'd'] li[4] = 'c' print(li)
结果输出:
[1, 2, 'a', 'b', 'c', 'd']
例2:
li = [1, 2, 'a', 'b', 4, 'd'] li[2:6] = [3, 4, 5, 6] print(li)
结果输出:
[1, 2, 3, 4, 5, 6]
查:切片查,或循环查
循环查举例:
li = [1, 2, 'a', 'b'] for i in li: print(i)
结果输出:
1
2
a
b
切片查举例:
li = [1, 2, 'a', 'b'] print(li[1:3])
结果输出:
[2, 'a']
其他操作:
1.count (数)(方法统计某个元素在列表中出现的次数)
li = [1, 2, 'a', 'b', 'a'] print(li.count('a'))
结果输出:
2
2.index (方法用于从里欸报中找出某个值第一个匹配项的索引位置)
li = [1, 2, 'b', 'a', 'a'] print(li.index('a'))
结果输出:
3
3.sort (方法用于在原位置对列表进行排序);reverse (方法将列表中的元素反向存放)
li = [1, 2, 5, 3, 4] li.sort() #没有返回值,所以只能打印li print(li) li.reverse() #它也没有返回值,所以只能打印li print(li)
li.sort(reverse=True) #反向排序
print(li)
结果输出:
[1, 2, 3, 4, 5] [5, 4, 3, 2, 1]
[5, 4, 3, 2, 1]
注意:使用sort()方法,列表中同时含有字符串和数字时不能进行排序,会报错。
sort()方法对字符串排序时,使用的是ASCII码字符顺序,而不是实际的字典顺序。这意味着大写字母排在小写字母之前。因此在排序时,小写的a在大写的Z之后。例如:
>>> li = ['Alina', 'Bob', 'brach', 'Wuli', 'angel', 'willen'] >>> li.sort() >>> li ['Alina', 'Bob', 'Wuli', 'angel', 'brach', 'willen']
如果需要按照普通的字典顺序来排序,就在sort()方法调用时,将关键字参数key设置为str.lower。
接上例:
>>> li.sort(key = str.lower) >>> li ['Alina', 'angel', 'Bob', 'brach', 'willen', 'Wuli']
这将导致sort()方法将列表中所有的表项当成小写,但实际上并不会改变它们在列表中的值。
4.列表的嵌套
li =['zhangsan', '李四', '王五', ['zhaoliu', '李白'], '武力'] print(li[1][1]) #打印出索引为1的第2个元素 name = li[0].capitalize() #打印索引为0的元素使其首字母大写 print(name) li[2] = '王八' #将列表li的索引为2的元素修改为'王八' print(li[2].replace('五', '八')) #将打印出列表li索引为2的元素把五改为八 li[3][0] = li[3][0].upper() #将列表li索引为3的嵌套列表索引为0的元素全部大写 print(li)
结果输出:
四 Zhangsan 王八 ['Zhangsan', '李四', '王八', ['ZHAOLIU', '李白'], '武力']
元组
元组被称为只读列表,即数据可以被查询,但不能被修改,所以字符串的切片操作同样适用于元组。