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

task4 列表、元组和字符串

程序员文章站 2022-07-14 23:26:31
...

一、列表:

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]
lst.append(15)
lst.insert(5, 20)
lst.extend([2, 5, 6])
del lst[3]
lst.reverse()
lst.sort()
lst.sort(reverse=True)

2、修改列表
问题描述:
lst = [1, [4, 6], True]
请将列表里所有数字修改成原来的两倍

lst = [1, [4, 6], True]
lst1 = []
for i in lst:
    if type(i) is int:
        i = i * 2
    else:
        i = i
    lst1.append(i)
print(lst1)

3、leetcode852题
山脉数组的峰顶索引,如果一个数组k符合下面两个属性,则称之为山脉数组,数组的长度大于等于3,存在iiii > 0
i<len(k)1i <\operatorname{len}(k) - 1, 使得k[0]<k[1]<<k[i1]<k[j]>k[i+1]>k[len(k)1]\mathrm {k}[0] <\mathrm{k}[1] <\ldots <\mathrm{k}[\mathrm{i} - 1] < \mathrm{k}[\mathrm{j}] > \mathrm{k}[\mathrm{i} + 1] \ldots >\mathrm{k}[\operatorname{len}(\mathrm{k})-1]
这个ii就是顶峰索引。现在,给定一个山脉数组,求顶峰索引。

class Solution:
    def peakIndexInMountainArray(self, A: List[int]) -> int:
        i = 0
        while (A[i] <= A[i + 1]):
            i += 1
        return i

二、元组

1、元组概念

写出下面代码的执行结果和最终结果的类型

(1, 2)*2
(1, )*2
(1)*2
print((1,2)*2,type((1,2)*2))
# (1, 2, 1, 2) <class 'tuple'>
print((1,)*2,type((1,)*2))
# (1, 1) <class 'tuple'>
print((1)*2,type((1)*2))
# 2 <class 'int'>

分析为什么会出现这样的结果.
前两种情况是对元组进行复制;最后一项()内没有逗号,将会把1当做数值进行处理,故最后结果为22,int类型。

2、拆包过程是什么?

a, b = 1, 2

上述过程属于拆包吗?

可迭代对象拆包时,怎么赋值给占位符?
属于拆包,右边1, 2已经定义了一个元组,与左边元素一一对应,故可视为解压元组。

在可迭代对象拆包时,使用_(元素变量名),*_(连续多个元素)进行占位。

三、字符串

1、字符串函数操作

  • 怎么批量替换字符串中的元素?replace()函数·
  • 怎么把字符串按照空格进⾏拆分?split()函数
  • 怎么去除字符串⾸位的空格? lstrip()函数·

2、实现isdigit函数

题目要求

实现函数isdigit, 判断字符串里是否只包含数字0
~9



def isdigit(string):
    """
    判断字符串只包含数字
    :param string:
    :return:
    """
    # your code here
    if string.isnumeric():
        flag = True
    else:
        flag = False
    return flag

3、leetcode5题:最长回文子串
给定一个字符串s,找到s中最长的回文子串。你可以假设s的最大长度为1000。
示例:
输入: “babad”
输出: “bab”
输入: “cbbd”
输出: “bb”

class Solution:
    def longestPalindrome(self, s: str) -> str:
        l = len(s)
        maxlength = 0
        maxstr = ''
        for i in range(l):
            for j in range(i + 1, l + 1):
                temp = s[i:j]
                if temp == temp[::-1] and j - i > maxlength:
                    maxstr = s[i:j]
                    maxlength = j - i
        return maxstr

相关标签: python