Python Day4 homework - 列表,元组
程序员文章站
2022-07-14 17:28:38
...
- 列表操作练习
列表lst 内容如下
lst = [2, 5, 6, 7, 8, 9, 2, 9, 9]
请写程序完成下列操作:
1 . 在列表的末尾增加元素15
2 . 在列表的中间位置插入元素20
3 . 将列表[2, 5, 6]合并到lst中
4 . 移除列表中索引为3的元素
5 . 翻转列表里的所有元素
6 . 对列表里的元素进行排序,从小到大一次,从大到小一次
lst = [2, 5, 6, 7, 8, 9, 2, 9, 9]
# 在列表的末尾增加元素15
lst.append(15)
print(lst) # [2, 5, 6, 7, 8, 9, 2, 9, 9, 15]
# 在列表的中间位置插入元素20
lst.insert(5, 20)
print(lst) # [2, 5, 6, 7, 8, 20, 9, 2, 9, 9, 15]
# 将列表[2, 5, 6]合并到lst中
lst.extend([2,5,6])
print(lst) # [2, 5, 6, 7, 8, 20, 9, 2, 9, 9, 15, 2, 5, 6]
# 4 . 移除列表中索引为3的元素
lst.pop(3)
print(lst) # [2, 5, 6, 8, 20, 9, 2, 9, 9, 15, 2, 5, 6]
# 5 . 翻转列表里的所有元素
lst.reverse()
print(lst) # [6, 5, 2, 15, 9, 9, 2, 9, 20, 8, 6, 5, 2]
#6 . 对列表里的元素进行排序,从小到大一次,从大到小一次
lst.sort() #从小到大,升序
print(lst) # [2, 2, 2, 5, 5, 6, 6, 8, 9, 9, 9, 15, 20]
lst.sort(reverse = True) #从大到小,降序
print(lst) # [20, 15, 9, 9, 9, 8, 6, 6, 5, 5, 2, 2, 2]
2 . 修改列表
问题描述:
st = [1, [4, 6], True]
请将列表里所有数字修改成原来的两倍
st = [1, [4, 6], True]
st[0] = st[0] * 2
st[1][0] = st[1][0] * 2
st[1][1] = st[1][1] * 2
print(st) # [2, [8, 12], True]
3 . leetcode 852题 山脉数组的峰顶索引
如果一个数组k符合下面两个属性,则称之为山脉数组
数组的长度大于等于3
存在
i
i
i,
i
>
0
i>0
i>0且
i
<
l
e
n
(
k
)
−
1
i<len(k)-1
i<len(k)−1,使得
k
[
0
]
<
k
[
1
]
<
.
.
.
<
k
[
i
−
1
]
<
k
[
j
]
>
k
[
i
+
1
]
.
.
.
>
k
[
l
e
n
(
k
)
−
1
]
k[0]<k[1]<...<k[i-1]<k[j]>k[i+1]...>k[len(k)-1]
k[0]<k[1]<...<k[i−1]<k[j]>k[i+1]...>k[len(k)−1]
这个
i
i
i就是顶峰索引
现在,给定一个山脉数组,求顶峰索引
示例:
输入: [1, 3, 4, 5, 3]
输出: True
输入:[1, 2, 4, 6, 4, 5]
输出:False
from typing import List
class Solution:
def peakIndexInMountainArray(self, A: List[int]) -> int:
flag ="True" #初始默认是山脉数组
if len(A) < 3: #如果数组长度<3,则不是山脉数组
flag = "False"
else:
MaxValue = max(A) #找到数组的最大值
MaxIndex = A.index(MaxValue) #找到最大值的index
for i in range(0,MaxIndex -1): #最大值左边的数,如果存在相邻左边>=右边的数,则不是山脉数组
if A[i]>=A[i+1]:
flag = "False"
break
for j in range(MaxIndex,len(A) -1): #最大值右边的数,如果存在相邻左边<=右边的数,则不是山脉数组
if A[j]<=A[j+1]:
flag = "False"
break
return(flag) #排除掉上面不是山脉数组的情况,剩下的情况就是山脉数组
test = Solution()
flag = test.peakIndexInMountainArray([1, 3, 4, 5, 3])
#flag = test.peakIndexInMountainArray([1, 2, 4, 6, 4, 5])
print(flag)
- 元组概念
写出下面代码的执行结果和最终结果的类型
a= (1, 2)*2
b= (1, )*2
c= (1)*2
print(a,type(a)) # (1, 2, 1, 2) <class 'tuple'>
print(b,type(b)) # (1, 2, 1, 2) <class 'tuple'>
print(c,type(c)) # 2 <class 'int'>
- 拆包过程是什么?
答:按照元组里的元组结构来定义变量
a, b = 1, 2
上述过程属于拆包吗?
答:有点像哎,定义元组也可以不加括号
可迭代对象拆包时,怎么赋值给占位符?
li = list(range(10))
first,*mid,last = li
print(first) # 0
print(mid) # [1, 2, 3, 4, 5, 6, 7, 8]
print(last) #9