当前位置: 首页 > news >正文

python日常刷题(二)

前言:本文记录2024年4月9日至2024年4月13日做题时遇到的几个问题(错题本):

🎬个人简介:努力学习ing
📋本专栏:python日常刷题
🎀CSDN主页:愚润求学


文章目录

  • 错题集
    • 一,max比较和列表推导式
    • 二,栈
      • 1,题1
    • 三,hex和bin
    • 四,赋值
    • 五,pow()
    • 六,join方法可以连接字符串
    • 七,列表推导式-变向删除
  • 八,shuffle函数打乱

错题集

一,max比较和列表推导式

注意当列表中的元素是字符串的时候,maxmin比较时比较的是字符串,如下:

list = ["1","49","30",'9','0']
print(min(list))
print(max(list))

虽然我希望能够输出0和49,但是比较的时候是根据字符串的比较规则,导致输出的是9和0
如果希望输出里面的最小数字和最大数字,我们可以先把它们转换成整型
如,解决下题:
在这里插入图片描述

代码:

list = input().split(" ")
list = [int(x) for x in list]  # 把列表中的元素转换成整型
print(max(list))
print(min(list))

二,栈

1,题1

这道题,值得注意的是:先往列表里面存入一个元素
在这里插入图片描述

class Solution:def isValid(self, s:str) -> bool:maches = {'(':')', '[':']', '{':'}', '?':'?'}  # 这个?是为了当?被pop出来的时候,可以有键与之匹配stock = ['?']  # 这个问号的意义:为了让stock不为空,例如:如果第一个元素为右括号时,让列表可以被pop()for i in s:if i in maches:stock.append(i)elif i != maches[stock.pop()]:return Falsereturn len(stock) == 1  # 判断是不是所有左括号都被匹配完了

三,hex和bin

hex()函数:十进制转十六进制
bin()函数:十进制转二进制
例如:

print(hex(100))
print(bin(100))

输出:
在这里插入图片描述

四,赋值

用列表一次性给多个元素赋值也是可以的:

a,b = [1,2]

使用map()
map() 第一个参数是函数,第二个参数是个迭代器:把序列中的每一个元素赋值给第一个函数,然后返回返回一个存放这些结果的map对象实例

a,b = map()
a,b = new_list = map(lambda x:int(x), input().split())
print(a,b)  # 输入:1 2  输出:1 2(转换成了整型)

五,pow()

pow(base, exponent)

abse:底数
exponent:指数

如:

pow(2, 3)  # 返回 2 的 3 次幂,即 8

六,join方法可以连接字符串

例如:
以空格" "为分隔符,把list1的每个元素连成一个字符串

list1 = ["Hello", "world", "I", "am", "learning", "Python"]
print(" ".join(list1)) 
# 输出:"Hello world I am learning Python"

七,列表推导式-变向删除

当我希望删除列表中的素数元素:
错误代码:

def is_prime(num: int) -> bool:for i in range(2, int(num/2)):if num % i == 0:return Falsereturn Truels = [23, 45, 78, 87, 11, 67, 89, 13, 243, 56, 67, 311, 431, 111, 141]
for pos in range(len(ls)):if is_prime(ls[pos]):del ls[pos]
print(ls)

因为删除元素的时候会减小列表的长度,所以后续会造成越界

我们可以用列表推导式来提取元素,从而变向达到删除的效果:

def is_prime(num: int) -> bool:for i in range(2, int(num/2)):if num % i == 0:return Falsereturn Truels = [23, 45, 78, 87, 11, 67, 89, 13, 243, 56, 67, 311, 431, 111, 141]
ls = [num for num in ls if not is_prime(num)]
print(ls)

八,shuffle函数打乱

shuffle函数是Python内置库random中的一个函数,用于将序列(如列表、元组或字符串)中的元素随机打乱顺序。
原型:

random.shuffle(iterable, random=None)

iterable: 要打乱顺序的序列(可修改)。
random: 随机数生成器,用于提供随机性。如果未指定或为None,则使用默认的随机数生成器。
返回值:直接对原序列进行修改,返回打乱顺序后的序列。
示例:

import random# 打乱列表的顺序
lst = [1, 2, 3, 4, 5]
random.shuffle(lst)
print(lst) 

http://www.mrgr.cn/news/23270.html

相关文章:

  • PI电动位移平台简明教程
  • [项目][WebServer][项目介绍及知识铺垫][下]详细讲解
  • 【C语言】揭开计数制的面纱:深入浅出二进制及二进制计算
  • 4G基站和5G基站的覆盖范围对比
  • 华为 HCIP-Datacom H12-821 题库 (10)
  • 存储课程学习笔记4_设计数据结构管理nvme磁盘(基于已经通过struct nvme_user_io和ioctl实现了对nvme设备的读写)
  • [git操作] git创建仓库上传github报错
  • 大模型→世界模型下的「认知流形」本质·上
  • Apple Vision Pro:重塑工作与娱乐体验的14天深度体验报告
  • K-均值聚类算法及其优缺点
  • HarmonyOs 应用基础--ArkTS-核心-基础
  • 【信创】统信UOS1070根目录占满后无法进入系统的解决方法
  • 基于SpringBoot+Vue+MySQL的垃圾分类回收管理系统
  • C#笔记8 线程是什么?多线程怎么实现和操作?
  • 《深度学习》【项目】OpenCV 信用卡号识别
  • 数据库设计【从概念到实施】
  • MVC设计模式与delegate
  • 2024-09-09 Leetcode刷题
  • Parsec无法使用、访问、连接、被墙、被封、800报错解决方案 完美平替软件
  • 怎么修复松下相机死机视频只有0字节(0KB)的MDT文件【实测可修复】