赞
踩
给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。
在「杨辉三角」中,每个数是它左上方和右上方的数的和。
示例 1:
- 输入: numRows = 5
- 输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]
示例 2:
- 输入: numRows = 1
- 输出: [[1]]
提示:
杨辉三角对于学过数学的人应该很熟悉啦,就像图片中的演示,头尾都为1,掐头去尾后,某行的i等于上一行的i-1和i的和。用数学思维稍微思考一下,代码就差不多啦,可以用到我们上节课学的循环,因为一共有numRows行,这道题关键在于列表(数组的一种)的操作,稍后我们系统地讲一下。
- class Solution:
- def generate(self, numRows: int) -> List[List[int]]:
- result = list()#创建一个外层列表
- for i in range(0,numRows,1):#第一层循环,外列表
- sret = list()#创建一个内层列表
- for j in range(0,i+1,1):#第二层循环,内列表
- if j == 0 or j == i:
- sret.append(1)
- else:
- sret.append(result[i - 1][j] + result[i - 1][j - 1])
- result.append(sret)
- return result
数组是编程中一种强大的数据结构,它允许存储和操作相同类型元素的集合。在 python 中,数组是通过数组模块创建的,该模块提供了一个简单的接口来创建、操作和处理数组。
ps:列表和数组的区别
2.列表的访问
3.列表元素添加、修改与删除
4.切片
- list1 = ['Lumos']
- list2 = ['带你学python']
- list3 = list1 + list2
- print(list3)
- #输出:['Lumos', '带你学python']
-
- print(10 * list3)
- #输出:['Lumos', '带你学python', 'Lumos', '带你学python', 'Lumos', '带你学python', 'Lumos', '带你学python', 'Lumos', '带你学python', 'Lumos', '带你学python', 'Lumos', '带你学python', 'Lumos', '带你学python', 'Lumos', '带你学python', 'Lumos', '带你学python']
len():计算序列的长度,即返回序列中元素的个数
max():返回序列中元素的最大值
min():返回序列中元素的最小值
sum():计算序列中元素的和,使用该函数时,序列中元素必须都是数字,不能是字符或字符串,否则会报错。因为Python解释器无法判断‘+’是要做求和运算还是序列连接操作
list():将序列转化为列表
str():将序列转化为字符串
tuple:将序列转化为元组
sorted:对序列中元素进行排序
reversed():将序列中的元素反向,不会改变原序列顺序,而是指向一个新的地址,如原序列list1,可通过q = list(reversed(list1)),得到一个元素顺序与原序列list1相反的新序列q
enumerate():将序列索引和序列元素组合成元组,形成一个新序列
- import numpy as np
-
- arr = np.array([1, 2, 3, 4, 5]) # 创建一维数组
- print(arr) # 输出: [1 2 3 4 5]
-
- matrix = np.array([[1, 2, 3], [4, 5, 6]]) # 创建二维数组
- print(matrix)
- # 输出:
- # [[1 2 3]
- # [4 5 6]]
- import numpy as np
-
- arr = np.array([1, 2, 3, 4, 5])
-
- print(arr[0]) # 输出: 1,访问第一个元素
-
- arr[2] = 10 # 修改第三个元素为10
- print(arr) # 输出: [ 1 2 10 4 5]
-
- matrix = np.array([[1, 2, 3], [4, 5, 6]])
-
- print(matrix[0, 1]) # 输出: 2,访问第一行第二列元素
-
- matrix[1, 2] = 7 # 修改第二行第三列元素为7
- print(matrix)
- # 输出:
- # [[1 2 3]
- # [4 5 7]]
- tup1 = ('apple','pear',2000,2024,2000)
- tup2 = (1,2,3,4,5)
- tup3 = "a","b","c","d"
- print(tup1[1:5])#访问输出('pear', 2000, 2024)
- #不可以修改,只能增加;
- tup3 = tup1 + tup2
- print(tup3)
- tup1.count(2000)# 查找元素在tuple中出现的次数
- tup1.index(2000)#查找元素的第一个索引值
1.字典的每个键值 key:value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中 ,格式如下所示:
d = {key1 : value1, key2 : value2 }
2.创建与访问
- #创建字典三个例子
- test = {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'}
- test1 = { 'abc': 456 }
- test2 = { 'abc': 123, 98.6: 37 }
- print(test,test1,test2)
- #输出
- #{'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'} {'abc': 456} {'abc': 123, 98.6: 37}
- #访问字典里的值
- print(test['Beth'])
- #输出:9102
3.修改与删除
- #修改字典中的值
- test['Beth'] = 2024
- print(test['Beth'])
- #输出:2024
-
- del test2['abc']
- print(test2)
- #输出{98.6: 37}
-
- test2.clear() # 清空字典所有条目
- print(test2)
- del test # 删除字典
这篇文章几乎拖了两周,我每天都会用空余时间查关于数组的资料,像钻牛角尖似的,立志生成一篇最全的python数组教程,可是我翻阅了很多文章,都难以整合一篇最完整、逻辑最缜密的文章,突然在今晚又想到,这一切重要吗?学会就OK了,为什么要纠结这个形式呢,那我不就成为自己最讨厌的那种人了,所以说知识不要停留在表面,要真的学会并举一反三,共勉,各位。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。