在回顾各类序列数据类型之前,我想补充一点字符串的内容。
前面只展示了print函数输出变量值,类型和id,如果我们要输出一些字符再加上变量及其属性的话,可以采用如下方式。
name = '张三'
age = 20
print('我叫'+name+'今年'+str(age)+'岁')
需要注意的是,这个方法采用的是字符串的连接操作,所以保证print的对象均是字符串类型,而输出变量的值或属性则不需要进行类型转换 。
我分享文章也是对自己知识的一个回顾,难免有缺漏,如果有新发现会在之后的内容中提到,可能会破坏了一些朋友完整连贯的阅读体验,但是作为一个系列,我更希望能有朋友通过我的文章对Python的编程体系有了新的认识,我将心路历程分享给大家,也希望有不同的思维碰撞,在此先行道谢了。
闲话少叙,开始今天的正文内容。
定义
列表是一种数据项构成的有限序列,即按照一定的线性顺序排列而成的数据项集合,在这种数据结构上进行的基本操作包括对元素的的查找,插入和删除,这其中的各个数据项不需要具有相同的类型,如整型,浮点型,复数,字符串,甚至是另一个列表。
list1 = [1, 2.2, 5+3j, "hi"]
list2 = [88, list1]
print(list1, type(list1))
print(list2, type(list2))
列表的标志就是方括号,[ ]内的每一个数据项称为元素,用逗号隔开。
索引
和之前讲过的字符串相同,列表元素的下标索引也是从0开始的,我们可以通过索引读取列表中的某一个或某一部分元素。
list1 = [1, 2.2, " ", "hi"]
print(list1[0], type(list1[0]))
print(list[2:4], type(list[2:4]))
当我们截取某一段列表时,它的类型就变成了GenericAlias,翻译过来是“通用别名”,网上有的称呼它为标准泛型,有的叫形参泛化类,简单来说其实就是原有序列的一个切片。
索引除了从0开始正向计数以外,还可以从最后一个开始读取,反向索引从-1开始。
list1 = [1, 2.2, "r", "hi"]
print(list1[-1], type(list1[-1]))
此外如果元素数量很多且需要读到末位,我们可以使用[x:]来表示从第x个元素到最后一个元素。
修改
我们可以通过索引对某一元素进行重新赋值,这一操作包括元素的更新、补充和删除。
更新
list1 = [1, 2.2, "r", "hi"]
print(list1)
list1[0] = bool(False)
print(list1)
list1[0:2] = [0, 1, 2]
print(list1)
特别说明一点,更新的元素数量和索引提供的元素数量可以不一致,比如我将前两个元素替换为一个拥有三个元素的列表,那么原列表里的前两个元素会被取代,而第三个元素则会向后移动直到更新的元素全部写入新列表中。
补充
列表的补充操作需要调用append函数,如下所示。
list1 = [1, 2.2, "r", "hi"]
print(list1)
list1.append(bool(False))
print(list1)
list1.append([0, 1, 2])
print(list1)
需要注意使用append函数添加列表时,整个列表会被作为一个元素加入到新列表中,如果想让列表中每个元素都是单独的数字或字母,可以效仿字符串的连接方式,用“+”连接。
list1 = [1, 2.2, "r", "hi"]
print(list1)
list1 += [0, 1, 2]
print(list1)
删除
删除元素则是用到了del函数,在使用时要注意del后面不加括号。
list1 = [1, 2.2, "r", "hi"]
print(list1)
del list1[0]
print(list1)
del list1[0:2]
print(list1)
输出
这一部分是利用函数等方法来输出列表的一些属性。比如我们可以使用前面讲过的“in”或“not in”来判断列表中是否包含某个值。
list1 = [1, 2.2, "r", "hi"]
print(3 in list1)
print(1 not in list1)
- 使用len函数得到列表的元素总数
- 使用max函数得到列表的最大值
- 使用min函数得到列表的最小值
- 使用count函数得到元素的出现次数
list1 = [1, 2.2, False, -5]
print(len(list1))
print(max(list1))
print(min(list1))
print(list1.count(1))
当列表中只有整型、浮点型和布尔值时才能使用max和min,布尔值根据真假情况赋予0或1。