列表也非常适合存储一组数字,尤其是大数据处理,处理的几乎都是由数字(如气温、距离、人口数量、经济等)组成的集合。
Python提供很多工具,在数据可视化中,可高效地处理数字列表。
一、数值列表
range() 让你能够轻松地生成一系列的数字
for value in range(1,6):
print(value)
# 显示结果为1,2,3,4,5
注意:函数 range(1:6)让Python从指定的第一个值开始数,并到达第二个值后停止,但不包含第二个值(这里为6)要打印数字1~10,需要使用 range(1,11) ,在使用range() 时,如果输出不符合预期,可尝试将指定的值加1或减1。
numbers = list(range(1,6)) # 要创建数字列表,可使用函数list()可将range()的结果直接转换为列表
print(numbers)
even_numbers = list(range(2,11,2)) #使用函数range(2,11,2)时,表从2开始数,然后不断地加2,直到达到或超过终值(11)
print(even_numbers)
squares = [] #定义一个空的squares列表
cube_squares = [] #定义一个空的cube_squares列表
for value in range(1,11): #从1开始,到11结束。注意value只能小于11,即10
square = value**2 # **表示乘方 **2,表示平方
cube_square = value**3 # **3,表示立方
squares.append(square) #方法append()表示列表尾增加元素。
cube_squares.append(cube_square)
print(squares) #循环结束后,打印出range(1,11)中1-10的平方
print(cube_squares) #打印出range(1,11)中1-10的立方
编写三四行代码来生成列表有点繁复时,可考虑创建列表解析,列表解析将for循环和创建新元素的代码合并成一行,编写一行代码就能生成这样的列表
new_squares = [value**2 for value in range(1,11)]
print(new_squares)
二、对数字列表执行简单的统计计算,先了解几个专门用于处理数字列表的Python函数。
print(min(squares)) #打印数列squares中最小值
print(max(squares)) #打印数列squares中最大值
print(sum(squares)) #打印数列squares中总和
三、切片
所谓切片,也即列表的一部分,Python称之为切片,即可指定要使用的第一个元素和最后一个元素间的任意索引。
names=['xiaozhan','caiyilin','huangxiaoyun','zhoushen','DAOlang','huangxiaoming']
print(names[0:3]) #提取列表第1个元素到第2个元素,注意小于第2个数字3,截止索引指定为2
print(names[1:4]) #提取列表第2个元素到第3个元素,注意小于第2个数字4,截止索引指定为3
print(names[2:]) #提取列表第3个元素到末尾的所有元素(注意第1个为0),可将起始索引指定为2 ,并省略终止索引
print(names[-3:]) #-3表示从列表倒数第3个元素到末尾的所有元素
#遍历切片 遍历列表的部分元素,可在for循环中使用切片。在下面的示例中,我们遍历前三名人员,并打印他们的名字
print("Here are the first three names on my name list:")
for name in names[:3]: #提取列表第1个元素到第2个元素,注意小于第2个数字3,截止索引指定为2
print(name.title())
new_names = names[:] # names[:]中省略数字,表示全部
print("The used names list are:")
print(names) #打印原名单
print("\nThe new names list are:")
print(new_names) #打印复制的新名单
四、元组
列表适合存储在程序运行期间可能变化的数据集,列表中的值是可以修改的,使用方括号来标识,如上述的 names=['xiaozhan','caiyilin','zhoushen','DAOlang','huangxiaoming']
元组也是一种列表变量,运行过程中不可修改其中的任一元素,但可整体重新赋值,使用圆括号来标识,如first_names=('bush','lucy','jack')
names=['xiaozhan','caiyilin','zhoushen','DAOlang','huangxiaoming'] first_names=('bush','lucy','jack') for first_name in first_names: #遍历元组中的所有值 print(first_name) print('\n') #间隔行 #修改元组变量 first_names=('zhao','qian','sun','li') #重新对first_names进行赋值 for first_name in first_names: #遍历元组中的所有值 print(first_name) # 测试()和[]能否修改元组中某个元素 first_names(1)='chen' #对元组first_names第2个位置修改为chen,程序不会正常运行 first_names[0]='chen' #对元组first_names第1个位置修改为chen,程序不会正常运行 如下图运行结果: