(1)列表用[]号来标识
(2)列表内部的元素可以是任意数据类型
(3)列表是使用最频繁的数据类型之一
(4)可变类型数据:定义之后可以往这个数据中添加,删除,修改元素
li = [19, 0.1, 'python']
# 列表可以通过下标索引取值
print(li[2])
运行结果:python
# 列表的切片操作
li1 = [11, 22, 33, 44, 55]
# 跟字符串一样
print(li1[1:3])
print(li1[::2])
运行结果:
[22, 33]
[11, 33, 55]
// An highlighted block
var foo = 'bar';
li = [1, 2, 3]
# append:往列表的尾部添加元素(追加)
li.append('11') # 调用之后不用变量接收结果
print(li)
res = li.append('22')
# 使用append 方法后,是没有结果的,所以赋值后,打印出“空”
print(res)
运行结果:
[1, 2, 3, ‘11’]
None
li = [1, 2, 3]
# insert:指定下标位置添加元素
li.insert(1,'999')
print(li)
运行结果:
[1, ‘999’, 2, 3]
# extend 一次性往列表尾部添加多个元素
# 将列表多个元素[11, 22, 33],一次性添加到列表的尾部,输出列表
# 1)extend() 方法的括号里,填写“列表”即可
# 2)不可以指定位置
# 3)不可以排序添加
li.extend([11, 22, 33])
print(li)
运行结果:
[1, 2, 3, 11, 22, 33]
li2 = [11, 22, 33, 44, 11]
# remove:删除指定的元素(删除找到的第一个)
li2.remove(11)
print(li2)
运行结果:
[22, 33, 44, 11]
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]
li2 = [11, 22, 33, 44, 11]
# clear:清空列表
li2.clear()
print(li2)
运行结果:
[]
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:统计列表中某个元素出现的次数
li4 = [11, 22, 33, 11, 22, 33, 44, 11]
res = li4.count(11)
print(res)
运行结果:3
# 改:通过列表的下标,指定元素进行修改
li = [11,22,33,44,55,66]
li[2] = 333
print(li)
运行结果:
[11, 22, 333, 44, 55, 66]
对列表进行从小到大排序(升序)
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’
纯字符串排序(升序)
# 按照ASCII码排序;先按照首字符排序,若首字母一致,再按照第二个字符排序;数值 < 大写字母 < 小写字母
li = ['ssd','AAA','aaa','228','1']
li.sort()
print(li)
运行结果:[‘1’, ‘228’, ‘AAA’, ‘aaa’, ‘ssd’]
纯字符串排序(降序)
# 纯字符串排序(降序),按照ASCII码排序
li = ['ssd','AAA','aaa','228','1']
li.sort(reverse=True)
print(li)
运行结果:[‘ssd’, ‘aaa’, ‘AAA’, ‘228’, ‘1’]
列表反转方法
方法一:切片反向步长
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]
"""
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) # 修改li3会影响li
print(li2) # 修改li3不会影响li2
print(li3)
运行结果:[11, 22, 33, 99]
[11, 22, 33]
[11, 22, 33, 99]
(1)元组定义在小括号中
(2)元组内部的数据:它支持数字,字符串甚至可以包含元组(即嵌套)
(3)元组的值不可修改,是属于不可变数据(重点)—意味着没有增删改的方法
(4)tuple=() 空元组
tuple_01 = ()
print(tuple_01,type(tuple_01))
运行结果:()
(5)tuple=(1,) 只有一个数据的时候注意加逗号
# tu1不是一个元组,是个数值,“()”是运算符
tu1 = (11)
print(type(tu1),tu1)
运行结果:
# 定义一个只有一个元素的元组,需要在元素后方加个“,”
tu2 = (11,)
print(type(tu2),tu2)
运行结果:<class 'tuple'> (11,)
# 元组内部的数据是有序的,可能通过下标获取对应的元素
tuple_01 = (11,22,33,'aa','bb')
print(tuple_01[3])
运行结果:aa
tuple_02 = (11,22,33,'aa','bb')
res = tuple_02.index(11)
print(res)
运行结果:0
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()