在前面的文章中我们介绍了CPU、硬盘、内存
Python100天24:全局变量、局部变量存放在哪儿
程序中的函数、方法、变量
Python100天30:怎么理解函数---输入输出都是函数
Python100天25:python语法综合运用猜随机数游戏
Python100天20:for对于有限数据的访问更合适一些
实际工作中面对要处理的工作根本没有时间去思考这些细节问题
- 要处理的文件杂乱无章
- 要处理的数据多如牛毛
- 要处理的sheet没有规律
经常有一些Excel需要整理分析出一些数据生成图表
- 对于正常有规律的数据来说或许是简单的,但是将数据整理成规范的Excel也是需要工作量的,本质上大部分的时间其实就把这些杂乱无章的数据规范化的一个过程。
每个单元格的坐标是
( Row ,Col )
(0,0) | (0,1) | (0,2) |
(1,0) | (1,1) | (1,2) |
(2,0) | (2,1) | (2,2) |
上面的是一个 三行 三列的表格,行号是从0开始,列号也是从0开始
- 列表: 如果二维表格退化成一行 ,那么 就是一个一维数组了,在Python中就变成了列表这个数据类型
“a” | "b" | "c" |
0 1 2 正向索引
-3 -2 -1 反向索引
什么是 列表(Lists)
- 列表其实就是Python中的数组,但是可以它可以动态的调整大小并且可以包含不同类型 的元素:列表的每个元素的位置是从 0开始的一直到列表长度-1
mylist = ["a", "b", "c"]
print(mylist[0],mylist[1], mylist[2] )
- 如果你不相信
print(mylist[3])
IndexError Traceback (most recent call last)
~AppDataLocalTemp/ipykernel_15552/394521117.py in
- 因为列表 的总长度是3 ,因此最后一个元素是 myList[2]
获取 mylist[3] 取得的是第四个元素,但是列表只有三个元素
因此会直接抛出错误list index out of range。
- 下面是一个列表 的常用
xs = [3, 1, 2] # Create a list
print(xs, xs[2]) # Prints "[3, 1, 2] 2"
print(xs[-1]) #
xs[2] = 'foo'
print(xs) # Prints "[3, 1, 'foo']"
xs.append('bar') # Add a new element to the end of the list
print(xs) # Prints "[3, 1, 'foo', 'bar']"
x = xs.pop() # Remove and return the last element of the list
print(x, xs) # Prints "bar [3, 1, 'foo']"
[3, 1, 2] 2
2
[3, 1, 'foo']
[3, 1, 'foo', 'bar']
bar [3, 1, 'foo']
运行一下程序查看结果
切片slice
切片(Slicing): 除了一次访问一个列表元素之外,Python还提供了访问子列表的简明语法; 这被称为切片。其实就是从一个列表 中截取一部分元素。
nums = list(range(5)) # range is a built-in function that creates a list of integers
print(nums) # Prints "[0, 1, 2, 3, 4]"
print(nums[2:4]) # Get a slice from index 2 to 4 (exclusive); prints "[2, 3]"
print(nums[2:]) # Get a slice from index 2 to the end; prints "[2, 3, 4]"
print(nums[:2]) # Get a slice from the start to index 2 (exclusive); prints "[0, 1]"
print(nums[:]) # Get a slice of the whole list; prints "[0, 1, 2, 3, 4]"
print(nums[:-1]) # Slice indices can be negative; prints "[0, 1, 2, 3]"
nums[2:4] = [8, 9] # Assign a new sublist to a slice
print(nums) # Prints "[0, 1, 8, 9, 4]"
- nums[2:4] 取列表 中的第3个元素到 第5个元素(但是不包括第5个元素)
- nums[2:] 取列表 中的第3个元素到 第最后一个元素(但是不包括第5个元素)
- nums[:-1] -1表示最后 一个无线 :没有开始元素表示从 第一个元素开始,到 最后 一个元素,不包括最后 一个元素。
注意[from:to] from ,to 是两个数字表示的索引,而索引是从0开始的
(循环)Loops: 你可以循环遍历列表的元素,如下所示:
animals = ['cat', 'dog', 'monkey']
for animal in animals:
print(animal)
# Prints "cat", "dog", "monkey", each on its own line.
这就是我们要学习 for 语法 的原因,因为很多时候我们要处理数组中的元素。
列表推导式:我们把数组中的元素进行加工 ,生成一个新的元素列表
将列表 中的每个数据平方
你可以使用 列表推导式 使这段代码更简单:
nums = [0, 1, 2, 3, 4]
squares = [x ** 2 for x in nums]
print(squares) # Prints [0, 1, 4, 9, 16]