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,存在, > 0
且, 使得
这个就是顶峰索引。现在,给定一个山脉数组,求顶峰索引。
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