列表(list类型)
1.列表的定义
(1)列表用[]号来标识 (2)列表内部的元素可以是任意数据类型 (3)列表是使用最频繁的数据类型之一 (4)可变类型数据:定义之后可以往这个数据中添加,删除,修改元素
2.列表的常见操作
(1)下标取值
li = [19, 0.1, 'python']
# 列表可以通过下标索引取值
print(li[2])
运行结果:python
(2)切片操作
# 列表的切片操作
li1 = [11, 22, 33, 44, 55]
# 跟字符串一样
print(li1[1:3])
print(li1[::2])
运行结果: [22, 33] [11, 33, 55]
(3)修改元素的值:可以通过下标修改指定位置的元素
var foo = 'bar';
3.列表的方法
(1)增:append、insert、extend
append:往列表的尾部添加一个元素(追加)
li = [1, 2, 3]
# append:往列表的尾部添加元素(追加)
li.append('11') # 调用之后不用变量接收结果
print(li)
res = li.append('22')
# 使用append 方法后,是没有结果的,所以赋值后,打印出“空”
print(res)
运行结果: [1, 2, 3, ‘11’] None
insert:指定下标位置添加元素
li = [1, 2, 3]
# insert:指定下标位置添加元素
li.insert(1,'999')
print(li)
运行结果: [1, ‘999’, 2, 3]
extend:一次性往列表尾部添加多个元素
# extend 一次性往列表尾部添加多个元素
# 将列表多个元素[11, 22, 33],一次性添加到列表的尾部,输出列表
# 1)extend() 方法的括号里,填写“列表”即可
# 2)不可以指定位置
# 3)不可以排序添加
li.extend([11, 22, 33])
print(li)
运行结果: [1, 2, 3, 11, 22, 33]
(2)删:pop、remove、clear
remove:删除指定的元素(删除找到的第一个)
li2 = [11, 22, 33, 44, 11]
# remove:删除指定的元素(删除找到的第一个)
li2.remove(11)
print(li2)
运行结果: [22, 33, 44, 11]
pop:默认删除最后一个元素,可以指定下标位置删除
li2 = [11, 22, 33, 44, 11]
# pop:默认删除最后一个元素
li2.pop()
print(li2)
运行结果: [11, 22, 33, 44]
li2 = [11, 22, 33, 44, 11]
pop:可以指定下标位置删除
li2.pop(1)
print(li2)
运行结果: [11, 33, 44, 11]
clear:清空列表
li2 = [11, 22, 33, 44, 11]
# clear:清空列表
li2.clear()
print(li2)
运行结果: []
(3)查:index、count
index:查找指定元素的下标,找到返回下标值,元素不存在会报错
li3 = [11, 22, 33, 44, 55]
# index 查找指定元素的下标,找到返回下标值,元素不存在会报错
res = li3.index(11)
print(res)
res2=li3.index(88)
print(res2)
运行结果: 0 ValueError: 88 is not in list
count:统计列表中某个元素出现的次数
# count:统计列表中某个元素出现的次数
li4 = [11, 22, 33, 11, 22, 33, 44, 11]
res = li4.count(11)
print(res)
运行结果:3
(4)改:通过下标修改值
# 改:通过列表的下标,指定元素进行修改
li = [11,22,33,44,55,66]
li[2] = 333
print(li)
运行结果: [11, 22, 333, 44, 55, 66]
(5)其他:sort、reverse、copy
sort方法:排序
对列表进行从小到大排序(升序)
li = [1,23,44,4545,11,22,4,2,1,33,332]
li.sort()
print(li)
运行结果: [1, 1, 2, 4, 11, 22, 23, 33, 44, 332, 4545] 对列表进行从大到小排序(降序)
li = [1,23,44,4545,11,22,4,2,1,33,332]
li.sort(reverse=True)
print(li)
运行结果:[4545, 332, 44, 33, 23, 22, 11, 4, 2, 1, 1]
不可以对“字符串+数字”的列表排序,会报错
li = [1,23,44,4545,11,22,4,2,1,33,332,'a']
li.sort()
print(li)
运行结果:TypeError: ‘<’ not supported between instances of ‘str’ and ‘int’
纯字符串排序(升序)
li = ['ssd','AAA','aaa','228','1']
li.sort()
print(li)
运行结果:[‘1’, ‘228’, ‘AAA’, ‘aaa’, ‘ssd’] 纯字符串排序(降序)
li = ['ssd','AAA','aaa','228','1']
li.sort(reverse=True)
print(li)
运行结果:[‘ssd’, ‘aaa’, ‘AAA’, ‘228’, ‘1’]
reverse方法:列表反转
列表反转方法 方法一:切片反向步长
li = [11,22,'11','ccc',111,2222,3333]
print(li[::-1])
运行结果:[3333, 2222, 111, ‘ccc’, ‘11’, 22, 11] 方法二:reverse列表反转方法
li = [11,22,'11','ccc',111,2222,3333]
li.reverse()
print(li)
运行结果:[3333, 2222, 111, ‘ccc’, ‘11’, 22, 11]
copy 复制列表
"""
li 和li3是同一个列表,修改li3会影响li;li2 是li复制出来的列表,与li一模一样,但没有关系;
实际工作场景:如果工作中想用li,但又不想影响原来的li,需要复制 一个li2进行使用,li依然保持不变
"""
li = [11,22,33]
li2 = li.copy()
li3 = li
li3.append(99)
print(li)
print(li2)
print(li3)
运行结果:[11, 22, 33, 99] [11, 22, 33] [11, 22, 33, 99]
元组
1.元组的定义
(1)元组定义在小括号中 (2)元组内部的数据:它支持数字,字符串甚至可以包含元组(即嵌套) (3)元组的值不可修改,是属于不可变数据(重点)—意味着没有增删改的方法 (4)tuple=() 空元组
tuple_01 = ()
print(tuple_01,type(tuple_01))
运行结果:() <class ‘tuple’> (5)tuple=(1,) 只有一个数据的时候注意加逗号
tu1 = (11)
print(type(tu1),tu1)
运行结果:<class ‘int’> 11
tu2 = (11,)
print(type(tu2),tu2)
运行结果:<class 'tuple'> (11,)
2.元组的查找方法
1.直接通过下标取值
tuple_01 = (11,22,33,'aa','bb')
print(tuple_01[3])
运行结果:aa
index:查找指定元素的下标,元素不存在会报错
tuple_02 = (11,22,33,'aa','bb')
res = tuple_02.index(11)
print(res)
运行结果:0
count:查找某个元素的个数
tuple_03 = [11,22,33,11,11,22,11,'aa','bb']
res = tuple_03.count(11)
print(res)
运行结果:4
字符串、列表、元组的通用操作
获取元素总数: len():获取序列类型的元素总数 相互转换: (1)str():可以将元组和列表强制转换成字符串(基本不用) (2)list():将元组和字符串中的每个元素拿出来,组成一个列表 (3)tuple():将列表和字符串中的每个元素拿出来,组成一个元组
字符串、列表、元组总结
序列类型:字符串、列表、元组,统称为序列数据(内部的元素是有顺序的) 通用操作: (1)下标取值; (2)切片; (3)获取元素总数:len()
|