Python每日练习:20个常用代码,初学者也可以自己实现!

文章目录

  • 前言
  • 20个代码
    • 1.重复元素判定
    • 2.字符元素组成判定
    • 3.内存占用
    • 4.字节占用
    • 5.打印 N 次字符串
    • 6.大写第一个字母
    • 7.分块
    • 8.压缩
    • 9.解包
    • 10.链式对比
    • 11.逗号连接
    • 12.元音统计
    • 13.首字母小写
    • 14.展开列表
    • 15.列表的差
    • 16.通过函数取差
    • 17.链式函数调用
    • 18.检查重复项
    • 19.合并两个字典
    • 20.将两个列表转化为字典
  • 总结
      • Python技术资源分享
        • 1、Python所有方向的学习路线
        • 2、学习软件
        • 3、精品书籍
        • 4、入门学习视频
        • 5、实战案例
        • 6、清华编程大佬出品《漫画看学Python》
        • 7、Python副业兼职与全职路线


前言

学 Python 怎样才最快,当然是实战各种小项目, 只有自己去想与写,才记得住规则。本文是20 个极简任务,初学者可以尝试着自己实现;
本文同样也是20 段代码,Python 开发者也可以看看是不是有没想到的用法。


20个代码

1.重复元素判定

以下方法可以检查给定列表是不是存在重复元素,它会使用 set 函数来移除所有重复元素。

def all_unique(lst):

return len(lst)== len(set(lst))

x = [ 1, 1, 2, 2, 3, 2, 3, 4, 5, 6]

y = [ 1, 2, 3, 4, 5]

all_unique(x) # False

all_unique(y)# True

2.字符元素组成判定

检查两个字符串的组成元素是不是一样的。

from collections importCounter

def anagram(first, second):

return Counter(first)== Counter(second)

anagram( "abcd3", "3acdb") # True

3.内存占用

importsys

variable = 30

print(sys.getsizeof(variable)) # 24

4.字节占用

下面的代码块可以检查字符串占用的字节数。

def byte_size(string):

return(len(string.encode( 'utf-8')))

byte_size( '')# 4

byte_size( 'Hello World')# 11

5.打印 N 次字符串

该代码块不需要循环语句就能打印 N 次字符串。

n = 2

s = "Programming"

print(s * n)

# ProgrammingProgramming

6.大写第一个字母

以下代码块会使用 title 方法,从而大写字符串中每一个单词的首字母。

s = "programming is awesome"

print(s.title)

# Programming Is Awesome

7.分块

给定具体的大小,定义一个函数以按照这个大小切割列表。

from math importceil

def chunk(lst, size):

return list(

map(lambda x: lst[x * size:x * size + size],

list(range( 0, ceil(len(lst) / size)))))

chunk([ 1, 2, 3, 4, 5], 2)

# [[1,2],[3,4],5]

8.压缩

这个方法可以将布尔型的值去掉,例如(False,None,0,“”),它使用 filter 函数。

def compact(lst):

return list(filter(bool, lst))

compact([ 0, 1, False, 2, '', 3, 'a', 's', 34])

# [ 1, 2, 3, 'a', 's', 34 ]

9.解包

如下代码段可以将打包好的成对列表解开成两组不同的元组。

array = [[ 'a', 'b'], [ 'c', 'd'], [ 'e', 'f']]

transposed = zip(*array)

print(transposed)

# [( 'a', 'c', 'e'), ( 'b', 'd', 'f')]

10.链式对比

我们可以在一行代码中使用不同的运算符对比多个不同的元素。

a = 3

print( 2< a < 8) # True

print( 1== a < 2)# False

11.逗号连接

下面的代码可以将列表连接成单个字符串,且每一个元素间的分隔方式设置为了逗号。

hobbies = [ "basketball", "football", "swimming"]

print( "My hobbies are: "+ ", ".join(hobbies))

# My hobbies are: basketball, football, swimming

12.元音统计

以下方法将统计字符串中的元音 (‘a’, ‘e’, ‘i’, ‘o’, ‘u’) 的个数,它是通过正则表达式做的。

importre

def count_vowels(str):

return len(len(re.findall(r '[aeiou]', str, re.IGNORECASE)))

count_vowels( 'foobar')# 3

count_vowels( 'gym')# 0

13.首字母小写

如下方法将令给定字符串的第一个字符统一为小写。

def decapitalize(string):

return str[:1]. lower+ str[1:]

decapitalize( 'FooBar')# 'fooBar'

decapitalize( 'FooBar')# 'fooBar'

14.展开列表

该方法将通过递归的方式将列表的嵌套展开为单个列表。

def spread(arg):

ret = []

fori in arg:

ifisinstance(i, list):

ret. extend(i)

else:

ret. append(i)

return ret

def deep_flatten(lst):

result = []

result.extend(

spread(list(map(lambda x: deep_flatten(x) iftype(x)== list elsex, lst))))

returnresult

deep_flatten([ 1, [ 2], [[ 3], 4], 5])# [1,2,3,4,5]

15.列表的差

该方法将返回第一个列表的元素,其不在第二个列表内。如果同时要反馈第二个列表独有的元素,还需要加一句 set_b.difference(set_a)。

def difference(a, b):

set_a = set(a)

set_b = set(b)

comparison = set_a.difference(set_b)

returnlist(comparison)

difference([ 1, 2, 3], [ 1, 2, 4]) # [ 3]

16.通过函数取差

如下方法首先会应用一个给定的函数,然后再返回应用函数后结果有差别的列表元素。

def difference_by(a, b, fn):

b = set(map(fn, b))

return[ item foritem in a iffn(item)not in b]

from math importfloor

difference_by([ 2.1, 1.2], [ 2.3, 3.4],floor)# [1.2]

difference_by([{ 'x': 2}, { 'x': 1}], [{ 'x': 1}], lambda v : v[ 'x'])

# [ { x: 2} ]

17.链式函数调用

你可以在一行代码内调用多个函数。

def add(a, b):

return a + b

def subtract(a, b):

return a - b

a, b = 4, 5

print((subtract ifa > b elseadd)(a, b)) # 9

18.检查重复项

如下代码将检查两个列表是不是有重复项。

def has_duplicates(lst):

return len(lst)! = len(set(lst))

x = [ 1, 2, 3, 4, 5, 5]

y = [ 1, 2, 3, 4, 5]

has_duplicates(x) # True

has_duplicates(y)# False

19.合并两个字典

下面的方法将用于合并两个字典。

def merge_two_dicts(a, b):

c = a.copy # make a copy of a

c.update(b) # modify keys and values of a with the once from b

returnc

a={ 'x': 1, 'y': 2}

b={ 'y': 3, 'z': 4}

print(merge_two_dicts(a,b))

#{ 'y': 3, 'x': 1, 'z': 4}

在 Python 3.5 或更高版本中,我们也可以用以下方式合并字典:

def merge_dictionaries(a, b)

return {**a, **b}

a = { 'x': 1, 'y': 2}

b = { 'y': 3, 'z': 4}

print(merge_dictionaries(a, b))

# { 'y': 3, 'x': 1, 'z': 4}

20.将两个列表转化为字典

如下方法将会把两个列表转化为单个字典。

def to_dictionary(keys, values):

return dict(zip(keys, values))

keys = [ "a", "b", "c"]

values = [ 2, 3, 4]

print(to_dictionary(keys, values))

#{ 'a': 2, 'c': 4, 'b': 3}

总结

好了,本次的分享就到这里,希望各位学习愉快~
在这里插入图片描述
【最新Python全套从入门到精通学习资源,文末免费领取!】

Python技术资源分享

如果你对Python感兴趣,学好 Python 不论是就业、副业赚钱、还是提升学习、工作效率,都是非常不错的选择,但要有一个系统的学习规划。

小编是一名Python开发工程师,自己整理了一套 【最新的Python系统学习教程】,包括从基础的python脚本到web开发、爬虫、数据分析、数据可视化、机器学习等。

如果你是准备学习Python或者正在学习,下面这些你应该能用得上:

1、Python所有方向的学习路线

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

在这里插入图片描述

2、学习软件

工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。

在这里插入图片描述

3、精品书籍

书籍的好处就在于权威和体系健全,刚开始学习的时候你可以只看视频或者听某个人讲课,但等你学完之后,你觉得你掌握了,这时候建议还是得去看一下书籍,看权威技术书籍也是每个程序员必经之路。

在这里插入图片描述

4、入门学习视频

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

img

5、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

img

6、清华编程大佬出品《漫画看学Python》

用通俗易懂的漫画,来教你学习Python,让你更容易记住,并且不会枯燥乏味。

在这里插入图片描述

7、Python副业兼职与全职路线

在这里插入图片描述
这份完整版的Python全套学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

👉CSDN大礼包:《Python入门资料&实战源码&安装工具】免费领取安全链接,放心点击

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/133538.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

jmeter接口自动化测试工具在企业开展实际的操作

在企业使用jmeter开展实际的接口自动化测试工具&#xff0c;建议按如下操作流程&#xff0c; 可以使整个接口测试过程更规范&#xff0c;更有效。 接口自动化的流程&#xff1a; 1、获取到接口文档&#xff1a;swagger、word、excel ... 2、熟悉接口文档然后设计测试用例&am…

推荐这款机器学习的特征筛选神器!

大家好&#xff0c;特征选择是机器学习建模流程中最重要的步骤之一&#xff0c;特征选择的好坏直接决定着模型效果的上限&#xff0c;好的特征组合甚至比模型算法更重要。除了模型效果外&#xff0c;特征选择还有以下几点好处&#xff1a; 提高模型性能并降低复杂性&#xff08…

不可否认程序员的护城河已经越来越浅了

文章目录 那些在冲击程序员护城河低代码/无代码开发平台自动化测试和部署工具AI辅助开发工具在线学习和教育平台 面临冲击&#xff0c;程序员应该怎么做深入专业知识&#xff1a;不断学习全栈技能开发解决问题的能力建立人际网络管理和领导技能 推荐阅读 技术和应用的不断发展对…

Springboot通过ObjectMapper(节点树)解析JSON

1、ObjectMapper通过节点树的方式解析JSON字符串 1.1、通过节点直接获取属性值 1.1.1、测试代码 node.get("order_id")&#xff1a;直接获取JSON中属性对应的值 Test public void parseJson() throws Exception{//创建json字符串&#xff0c;模拟从外界接收的订…

第二章 03Java基础-IDEA相关叙述

文章目录 前言一、IDEA概述二、IDEA下载和安装三、IDEA项目结构介绍四、IDEA的项目和模块操作总结前言 今天我们学习Java基础,IDEA下载以及相关配置和基础使用方法 一、IDEA概述 1.IDEA全称IntelliJ IDEA,是用于Java语言开发的集成工具,是业界公认的目前用于Java程序开发最…

Leetcode Hot100之六:42.接雨水

题目 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图&#xff0c;计算按此排列的柱子&#xff0c;下雨之后能接多少雨水。 提示&#xff1a; n height.length 1 < n < 2 * 10^4 0 < height[i] < 10^5 思路 暴力循环&#xff1a; 原本的思路是左边界i从左到…

阿里云从公网IP转为弹性公网IP,同时绑定多个IP教程

先将云服务器ECS 转为弹性IP 购买新的弹性辅助网卡 购买弹性公网iP 购买之后选择绑定资源选择第二步购买的网卡 进入ECS 终端 ,输入 ip address可以查看到eth1 的对应mac 地址 终端输入 vi /etc/sysconfig/network-scripts/ifcfg-eth1保存一下信息 DEVICEeth1 #表示新配置…

RK3568平台 查看内存的基本命令

一.free命令 free命令显示系统使用和空闲的内存情况&#xff0c;包括物理内存、交互区内存(swap)和内核缓冲区内存。共享内存将被忽略。 Mem 行(第二行)是内存的使用情况。 Swap 行(第三行)是交换空间的使用情况。 total 列显示系统总的可用物理内存和交换空间大小。 used 列显…

《Redis实战》笔记

文章目录 1.字符串命令2.列表命令3.集合命令4.散列命令5.有序集合命令6.发布订阅命令7.其他命令8.redis事务9.键的过期时间10.redis的持久化 1.字符串命令 2.列表命令 3.集合命令 4.散列命令 5.有序集合命令 6.发布订阅命令 7.其他命令 8.redis事务 5个命令&#xff1a;WATCH …

Spring IoC注解式开发

2023.11.11 注解的存在主要是为了简化XML的配置。Spring6倡导全注解开发。 负责声明Bean的注解&#xff0c;常见的包括四个&#xff1a; ComponentControllerServiceRepository 通过源码可以发现&#xff0c;Controller、Service、Repository这三个注解都是Component注解的别名…

开发模型(瀑布、螺旋、scrum) 和 测试模型(V、W)、增量和迭代、敏捷(思想)及敏捷开发 scrum

&#x1f9f8;欢迎来到dream_ready的博客&#xff0c;&#x1f4dc;相信您对这篇博客也感兴趣o (ˉ▽ˉ&#xff1b;) 震惊&#xff01;测试人员对BUG的全方位解析&#xff0c;测试的执行和BUG管理&#xff01; 原来测试人员遇到BUG是这样返回给开发的&#xff01;什么是BUG&am…

文件管理技巧:按文件容量大小分类,自动移动至目标文件夹的方法

按文件容量大小分类可以帮助快速识别和筛选出不同大小的文件。这样做有很多好处。首先&#xff0c;可以轻松地查找和访问特定大小的文件&#xff0c;提高工作效率。其次&#xff0c;通过将不同大小的文件分类&#xff0c;可以更好地了解和掌控文件的使用情况&#xff0c;避免存…

从windows iso文件中提取install.wim

1、首先从微软官方下载需要的windows镜像 https://www.microsoft.com/zh-cn/software-download/windows10/ 2、在下载的iso文件右键&#xff0c;打开压缩包&#xff0c;在sources文件夹下&#xff0c;应该就可以看到install.wim了。但似乎在最新的win10版本&#xff0c;微软采…

redis: 记录一次线上redis内存占用过大问题解决过程

引言 记录一次线上redis占用过大的排查过程&#xff0c;供后续参考 问题背景 测试同事突然反馈测试环境的web系统无法登陆&#xff0c;同时发现其他子系统也存在各类使用问题 排查过程 1、因为首先反馈的是测试环境系统无法登陆&#xff0c;于是首先去查看了登陆功能的报错…

jupyter notebook添加markdown目录

jupyternotebook添加markdown目录 1. 安装python包2. 安装JavaScript和CSS文件3. 启用扩展4. 设置markdown选项 1. 安装python包 官方安装 使用pip pip install jupyter_contrib_nbextensions # 或者 pip install https://github.com/ipython-contrib/jupyter_contrib_nbext…

【Spring】SpringBoot日志

SpringBoot日志 日志概述日志使用打印日志获取日志对象使用日志对象打印日志日志框架介绍门面模式SLF4J框架介绍(simple logging facade for java) 日志格式说明日志级别日志级别的分类日志级别的使用 日志配置配置日志级别日志持久化配置日志文件的路径和文件名配置日志文件的…

若依如何进行页面路由跳转,路由跳转时如何携带参数(超详细图文教程)

我们经常会有这样需求&#xff0c;当我们在一个页面时&#xff0c;想要跳转到另一个页面&#xff0c;但是跳转的同时还需要携带参数。那么这种情况在若依系统中该如何做呢&#xff0c;下面我们来说一下。 文章目录 问题提出&#xff1a;一、创建目标页面的路由(也就是图2的路由…

到底是什么是Python?语言的核心是什么?

文章目录 前言一、为什么提出python编程的核心是什么&#xff1f;二、Python需要REPL&#xff1f;三、Python的哪些部分需要被视为“Python”&#xff1f;四、需要多少兼容性才能有用&#xff1f;Python技术资源分享1、Python所有方向的学习路线2、学习软件3、精品书籍4、入门学…

msvcp140.dll丢失的解决方法win7系统,全面详细解析

在Windows 7系统中&#xff0c;msvcp140.dll是一个非常重要的动态链接库文件&#xff0c;它负责许多应用程序和系统的正常运行。然而&#xff0c;由于各种原因&#xff0c;msvcp140.dll文件可能会丢失或损坏&#xff0c;导致系统出现错误提示、程序无法启动等问题。本文将详细介…

QT 布局管理综合实例

通过一个实例基本布局管理&#xff0c;演示QHBoxLayout类、QVBoxLayout类及QGridLayout类效果 本实例共用到四个布局管理器&#xff0c;分别是 LeftLayout、RightLayout、BottomLayout和MainLayout。 在源文件“dialog.cpp”具体代码如下&#xff1a; 运行效果&#xff1a; Se…