欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Python Day4 homework - 列表,元组

程序员文章站 2022-07-14 17:28:38
...
  1. 列表操作练习
    列表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[i1]<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)
  1. 元组概念
    写出下面代码的执行结果和最终结果的类型
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'>
  1. 拆包过程是什么?
    答:按照元组里的元组结构来定义变量
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
相关标签: 自学 python