列表(list)结构在许多语言中都存在,来看看python3中的列表格式吧;详细说明请看代码中的注释;
1. 访问列表元素
name = ['lan', 'lu', 'yu']
print(name[0]) #索引从0开始
print(name[-1]) #-1代表倒数第一位
2. 修改列表元素(增删改)
name = ['lan', 'lu', 'yu']
name[-1] = 'hu' # 修改
print(name)
name.append('gg') # 在末尾追加元素
print(name)
name.insert(-1, 'gg') # 插入元素
print(name)
del name[-1] # 根据下标删除元素
print(name)
name.pop() # 删除最后一位元素
print(name)
name.pop(0) # 删除索引为0的元素
print(name)
name.remove('hu') # 根据值删除元素,如果存在多个重复的值,只删除第一次出现的
print(name)
3. 组织列表(排序)
3.1 sort() 不可还原性排序与sorte()
name = ['lan', 'lu', 'yu']
name.sort() # 对字符串元素按字母表顺序排序,永久性改变name中元素顺序
print(name)
name.sort(reverse=True) # 逆序 与name.reverse()效果一致
print(name)
print(sorted(name)) # 只返回排序结果,不改变name列表中元素顺序
print(name)
其中 name.sort(reverse=True) # 逆序 与name.reverse()效果一致;
3.2 注意
name = ['lan', 'lu', 'yu']
print(len(name)) # 列表的长度
empty = []
print(empty)
print(empty[0]) # 当为空时,索引取值会报错
print(empty[-1]) # 当为空时,索引取值会报错
4. 操作列表(循环遍历)
names = ['lan', 'lu', 'yu']
for name in names:
print(name) # 需要注意缩进
5. 列表中的数学
names = ['lan', 'lu', 'yu']
for index in range(0,3): # 包头不包尾
print(names[index])
5.1 函数range()第三个参数可设置步长;
names = ['lan', 'lu', 'yu']
for index in range(0,3,2): # 步长为2
print(names[index])
5.2 求数字列表的最大的,最小,求和等
numList = [2, 3, 1, 10, 4]
min(numList)
max(numList)
sum(numList)
5.3 列表解析(常用写法)
squares = [value ** 2 for value in range(1,11)]
print(squares)
6. 列表的切片
num = [ str(value) for value in range(11)]
print(num)
print(num[1:3]) # 1~2
print(num[:3]) # 0~2
print(num[1:]) # 1~最后
print(num[-3:]) # 最后三个元素
numBat = num[:] # 复制整个列表
print(numBat)
下一节讲元组,元组简而言之,就是不可变的列表;我们不希望其内容发生增删改,则采用元组的形式保存;