python列表/数组
一、列表初始化
python没有内置对数组的支持,但可以使用python列表代替;
- 使用for循环和append函数
arr=[]
for i in range(1000):
arr.append(0)
- 使用带计数器变量的while循环和append()
arr=[]
i=0
while(i<1000):
arr.append(0)
- 使用列表推导
arr=[0 for i in range(1000)]
- 使用*运算符
arr=[0]*1000
二、列表常用操作
- 访问列表元素
下标索引从0开始
cars=["Volvo","Audi","BMW"]
cars[0]
- 向列表添加元素
cars.append("Porsche")
- 按索引删除列表元素
cars.pop(1) #删除数组的第二个元素
- 按元素名删除数组元素
carsremove("Volvo")
三、常用函数总结
举例
1. 列表反转reverse
x=[1,2,3,4]
x.reverse()
#输出:[4,3,2,1]
2. 列表排序sort
x=[3,2,1,5,4]
x.sort()
#输出:[1,2,3,4,5]
3. 内置函数sorted,返回新列表,不对原列表进行修改
x=[1,5,2,3,4]
y=sorted(x)
#输出:x=[1,5,2,3,4],y=[1,2,3,4,5]
leetcode-1103-分糖果II
class Solution:
def ditributeCandies(self,candies:int,num_people:int)->List[int]:
ans=[0]*num_people
i=0
while candies!=0:
ans[i%num_people]+=min(i+1,candies)
candies-=min(i+1,candies)
i+=1
return ans