列表类型是python中一个很重要的类型,列表是一个容器,可以把他想象为一个大箱子,里面有很多格子
在每个格子里可以放置其他类型的数据,比如数字、字符串,甚至可以是另一组格子
列表定义
# 列表用[],然后按照顺序列出他其中的所有元素[data1,data2,data3,....]
# 空列表
lists = []
print(lists)
# 包含5个整型元素的列表
lists = [1, 2, 3, 4, 5]
# 包含3个字符串类型元素的列表
lists = ["王二小", "李刚", "爱迪生"]
# 列表的元素类型可以为任何其他类型,包括列表类型
sub_lists_1 = ["python", "javascript"]
sub_lists_2 = ["c++", "golang"]
language_lists = [sub_lists_1, sub_lists_2]
print(language_lists)
列表切片操作
# 列表中成员的索引值与str的索引值相同计算方法,即可以正向索引也可以反向索引
lists = [1, 2, 3, 4, 5]
# 截取开始的3个元素
lists[0:3]
# 截取末尾的3个元素
lists[-3:]
# 选取步长为2
lists[::2]
列表运算
# 列表可以通过加运算实现两个列表的组合
list1 = [1, 2, 3]
list2 = [4, 5, 6]
# 两个列表可以通过+运算合成一个新的列表
# 但是列表不能进行减元算
list3 = list1 + list2
print(list3)
# 列表可以乘以一个正整数N
# 得到一个重复N次的新的列表
list4 = list1 * 4
print(list4)
列表切片赋值
列表属于可变类型, 可变类型可以通过切片改变他的成员值.
字符串属于不可变类型, 不支持切片赋值
字符串无法切片赋值示例
# 不可变类型不支持对切片赋值
string = "abc"
string[0] = "A"
输出:TypeError: 'str' object does not support item assignment
列表切片赋值示例
以下示例可以对lists的切片进行赋值
# 可变类型支持对切片赋值
lists = ["a", "b", "c"]
lists[0] = "A" # lists=>["A", "b", "c"]
lists[0:2] = ["A", "B"] # lists=>["A", "B", "c"]
lists = ["a", "b", "c"]
# 切片赋值并不是按照次序一一替换
# 而是将片段整体替换
lists[0:2] = ["A", "B", "C"] # lists=>["A", "B", "C", "c"]
Python中的可变类型拥有一些内置方法
列表内置对象方法
# 向列表添加元素append
lists = []
lists.append(1)
print(lists)
lists.append(2)
# 弹出元素pop
lists.pop(0)
print(lists)
lists.pop()
# 附加另一个列表元素extend
lists_1 = [1,2,3]
lists_2 = [10, 20, 30]
# lists_1 += lists_2
lists_1.extend(lists_2)
print(lists_1)
讨论区