列表
列表由一系列按特定顺序排列的元素组成。用[]来表示列表:
log_levels = ['info', 'debug', 'warning', 'error', 'fatal']
print(log_levels)
#输出结果:['info', 'debug', 'warning', 'error', 'fatal']
用下标运算符访问元素,下标从0开始:
log_levels = ['info', 'debug', 'warning', 'error', 'fatal']
print(log_levels[0])
#输出结果:info
print(log_levels[1].upper())
#输出结果:DEBUG
修改、添加和删除元素
使用下标运算符修改元素:log_levels = ['info', 'debug', 'error', 'fatal']
log_levels[1] = 'warning'
print(log_levels)
#输出结果:['info', 'warning', 'error', 'fatal']
添加元素
用append()追加
用insert()插入
log_levels = ['debug', 'warning', 'error']
log_levels.append('fatal')
log_levels.insert(0, 'info')
print(log_levels)
#输出结果:['info', 'debug', 'warning', 'error', 'fatal']
删除元素
log_levels = ['debug', 'warning', 'error']
del log_levels[0]
print(log_levels)
#输出结果:['warning', 'error']
pop:弹出
如果不加参数,则弹出最后一个,如果有参数,则弹出相应位置的元素
pop会返回弹出的结果
log_levels = ['debug', 'warning', 'error']
last_elem = log_levels.pop()
print("pop '" + last_elem + "', result: " + str(log_levels))
#输出结果:pop 'error' result: ['debug', 'warning']
log_levels = ['debug', 'warning', 'error']
elem_at_index = log_levels.pop(1)
print("pop '" + elem_at_index + "', result: " + str(log_levels))
#输出结果:pop 'warning' result: ['debug', 'error']
remove:根据值删除
log_levels = ['debug', 'warning', 'error']log_levels.remove('debug')
print(log_levels)
#输出结果:['warning', 'error']
排序
sort:对列表本身进行排序log_levels = ['debug', 'warning', 'error', 'fatal']
log_levels.sort()
print(log_levels)
#输出结果:['debug', 'error', 'fatal', 'warning']
sorted:对返回排序后的列表,原列表本身不变
log_levels = ['debug', 'warning', 'error', 'fatal']
print(sorted(log_levels))
#输出结果:['debug', 'error', 'fatal', 'warning']
print(log_levels)
#输出结果:['debug', 'warning', 'error', 'fatal']
reverse:逆序列表
log_levels = ['debug', 'warning', 'error', 'fatal']
log_levels.reverse()
print(log_levels)
#输出结果:['fatal', 'error', 'warning', 'debug']
len:列表长度
log_levels = ['debug', 'warning', 'error', 'fatal']
print(len(log_levels))
#输出结果:4
for in:遍历列表
log_levels = ['debug', 'warning', 'error', 'fatal']
for log_level in log_levels:
print(log_level)
#输出结果:
debug
warning
error
fatal
行尾冒号表示下一行应该缩进
从下一行开始,所有缩进的语句都从属于冒号那一行log_levels = ['debug', 'warning', 'error', 'fatal']
for log_level in log_levels: #以下两行从属于for
message = log_level
print(message)
print(log_levels) #不属于for,在for结束时执行该语句
range(start,end):生成从start到end(不包括)的一系列数字:
for v in range(1, 5):print(v)
#输出结果:
1
2
3
4
使用list()将range()的结果转换为列表。
print(list(range(1,5)))
#输出结果:[1, 2, 3, 4]
range()可以指定跨度:
print(list(range(1,10,2)))
#输出结果:[1, 3, 5, 7, 9]
对数字列表进行统计
max() 计算最大值min() 计算最小值
sum() 计算和
nums = list(range(1,11))
print(max(nums))
#输出结果:10
print(min(nums))
#输出结果:1
print(sum(nums))
#输出结果:55
列表解析
列表解析语法可以将for循环和创建新元素的代码合并到一起:squares = [value**2 for value in range(1,11)]
print(squares)
#输出结果:[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
切片
[i:j]返回一个列表从i到j(不包括j)的切片,如果省略i,则为0,如果省略j,则为列表长度。log_levels = ['debug', 'warning', 'error', 'fatal']
print(log_levels[0:2])
#输出结果:['debug', 'warning']
print(log_levels[:2])
#输出结果:['debug', 'warning']
print(log_levels[2:])
#输出结果:['error', 'fatal']
如果[i:j]其中有负数,则表示从列表尾部开始计算。
log_levels = ['debug', 'warning', 'error', 'fatal']
print(log_levels[-2:])
#输出结果:['error', 'fatal']
print(log_levels[:-2])
#输出结果:['debug', 'warning']
遍历切片
for in 遍历切片
log_levels = ['debug', 'warning', 'error', 'fatal']
for log_level in log_levels[0:3]:
print(log_level)
#输出结果:
debug
warning
error
复制列表
使用切片[:]复制列表
log_levels = ['debug', 'warning', 'error', 'fatal']
log_levels_copy = log_levels[:]
log_levels_copy[0] = 'info'
print(log_levels_copy)
#输出结果:['info', 'warning', 'error', 'fatal']
print(log_levels)
#输出结果:['debug', 'warning', 'error', 'fatal']
元组
元组使用圆括号括起来,元组的值是不能改变的:log_levels = ('debug', 'warning', 'error', 'fatal')
print(log_levels)
#输出结果:('debug', 'warning', 'error', 'fatal')
print(log_levels[0])
#输出结果:debug
log_levels[0] = 'info' #错误
遍历元组
使用for in遍历元组:
log_levels = ('debug', 'warning', 'error', 'fatal')
for log_level in log_levels:
print(log_level)
#输出结果:
debug
warning
error
fatal
可以给元组重新赋值:
log_levels = ('debug', 'warning', 'error', 'fatal')
log_levels = ('info', 'warning', 'error')
print(log_levels)
#输出结果:('info', 'warning', 'error')