java调用python_Python教程:17个冷门但实用的小技巧

Python是机器学习的主流语言,没有之一。今年5月,它首次在PYPL排行榜上超越JAVA,成为全球第一大编程语言。而一个月后,Stack Overflow也分享了最新的编程语言浏览量统计数字,结果显示,Python的月活历史性地超越了Java和JavaScript,真正问鼎榜首。

“人生苦短,我选Python”。那么,你真的掌握了Python吗?

v2-a01b9e933d33fade0e5f180cdf8c46be_b.jpg

1. 交换变量

有时候,当我们要交换两个变量的值时,一种常规的方法是创建一个临时变量,然后用它来进行交换。比如:

# 输入
a = 5
b = 10
#创建临时变量
temp = a
a = b
b = temp
print(a)
print(b)

但在Python中,其实我们有一种更简洁的写法:

v2-ebe7b93853231d756104757f49ad10c1_b.jpg

2. 将list中的所有元素转为单个字符串

列表和字符串是Python中最常见的数据类型,它们会遇到互相转换的需要。那么,我们该怎么把list中的所有元素转为字符串呢?

v2-12054331d0d115cf7468a50d0332fd5c_b.jpg

3. 查找list中出现次数最多的元素

给定一个包含多个元素的list,让你查找其中出现次数最多的元素,你会怎么做?在下图中,我们介绍了两种方法,其中第一种是利用max()函数的key参数,第二种则是使用Counter。

v2-8a8404da8f1d7d62fec9f793532686e7_b.jpg

4. 判断两个字符串是否是anagram

所谓anagram,就是两个词所用的字母及其个数都是一样的,但是它们字母的位置不一样,比如abc,bac,acb。在Python中,Counter可以解决这个问题,

v2-a3741b9f99d9ead88b15b81303686d11_b.jpg

5. 字符串倒转

字符串倒转,就是把1234转成4321。下面我们介绍了三种方法:

方法一:最简单的切片法,a[::-1]就相当于a[尾:头:-1]。

方法二:用Python自带reversed()函数,它可被用于list倒转。

方法三:第三种是通过倒转数据类型和切片倒转整数。

v2-ae8a402bd6407c8bab71c464df0aa412_b.jpg

6. list倒转

和字符串倒转类似,切片法也可以被用于list倒转,如下面的第一种方法。第二种方法调用的是上面提到的reversed()函数。

v2-2169417a0d275b7369661ad5b1fb880d_b.jpg

7. 二维矩阵转置

如果要转置矩阵,可以直接使用使用zip()函数。除此之外,没有比import numpy更简单的方法了。

v2-bba91e4345830191ee190d6d40aa2050_b.jpg

8. 链式比较

如果想输出数组中介于4-7之间的元素,java是这么写的:if( b > 4 && b < 7){ },但Python更人性化。包括最后一句1 == b < 20,这和C、java也很不一样。

v2-d5ddd36633a22f2e6cdb702c38cc0ca2_b.jpg

9. 链式调用

在python中实现链式调用只需在函数返回对象自己就行了。

v2-b04d6d9bf52a9b442a6f7f17eb7c8c40_b.jpg

10. 复制list

如果是刚学习Python的C用户,你可能会想写b = a,但这是错的。在Python中,变量指向的是某个对象的标签。也就是说,按照这种的写法,b和a指向的是内存中的同一个列表,对b操作,就相当于对a操作。所以正确的写法有以下几种:

方法一:b=a[:]。

方法二:b=list(a)。

方法三:使用Python 3的copy()函数,直接复制list,类似a[:]。

方法四:使用copy.deepcopy()。

v2-583fdff2cd4118a4d69f35adbbb1b25a_b.jpg

11. 判断一个key是否在字典中

如果目标key不在字典中,以下代码会返回None或default。

v2-dd8ff6a759b784507ed610dbe4a80445_b.jpg

12. 按value排序字典

Python的内置字典数据类型是无序的,而key可以被用来获取对应的value。有时我们需要根据value对字典中的item进行排序输出。方法如下所示:

方法一:用sorted函数排序,其中key参数是lamda表达式。

方法二:用operator.itemgetter而不是lamda表达式进行排序。

方法三:如果只需得到排序后的key,可用.get。

v2-779678f00ab2953db8df6ad24dc9eb2f_b.jpg

13. for ... else语法

v2-42dbaf483eb1cd0958bd925338240e34_b.jpg

14. 用逗号分隔list

下面分别是字符串list、数字list和混合list的逗号分隔方式。

v2-17e56d4a9d7189f00f9f3c045a04afeb_b.jpg

15. 合并字典

方法一:Python 3.5可以存在重复key值,print({**d1, **d2})。

方法二:在内存中创建两个列表,再创建第三个列表,拷贝完成后,创建新的dict,删除掉前三个列表。

方法三:d1.update()。

v2-4aedcf447d4054359440e36ae95b932a_b.jpg

16. list中的最小和最大索引

v2-733c7e5b54697bafec21fb4c9eb706cf_b.jpg

17. 从list中删除重复项

方法一:把list转成set,去除重复项,再转回list。

方法二:调用collections里的OrderedDict,和set差不多。

v2-9f9639842a59826adb01545ae4d5b845_b.jpg

希望本文能给你帮助,我选择Numpy。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Hadoop精华问答 | NameNode的工作特点

我们很荣幸能够见证Hadoop十年从无到有&#xff0c;再到称王。感动于技术的日新月异时&#xff0c;让我们再来看看关于Hadoop的精华问答。1Q&#xff1a;NameNode的工作特点A&#xff1a;NameNode始终在内存中保存metedata&#xff0c;用于处理“读请求”&#xff0c;到有“写请…

五个非常实用的自然语言处理资源

摘要&#xff1a; 正在学习NLP&#xff0c;手中没有资源&#xff1f;快来看看这些免费的NLP学习资源吧&#xff01;如果你对自然语言处理方面的资源感兴趣&#xff0c;请仔细阅读本篇文章。运行数据科学POC的7个步骤网上有很多依靠深度学习方法的NLP资源&#xff0c;有一些资源…

'umi' 不是内部或外部命令,也不是可运行的程序 或批处理文件或umi: command not found

1.#首先&#xff0c;需要安装Node.js &#xff08;一路下一步安装&#xff09;&#xff0c;并确保 node 版本是 8.10 或以上。&#xff08;mac 下推荐使用 nvm 来管理 node 版本&#xff09; #安装完成后&#xff0c;通过node -v 命令查看其版本号 node -v2.推荐使用 yarn 管…

库函数strcpy函数的实现

strcpy指的是字符串的拷贝&#xff0c;就是把源字符串拷贝到目标空间里面 1、源字符串的拷贝是是以‘\0’结尾的&#xff0c;同时会将字符串中的’\0’拷贝过去 #include<stdio.h> int main(){char arr1[20]"xxxxxxxxxxxxx";char arr2"hello world"…

机器学习和人工智能的初学指南

摘要&#xff1a; 作者自学机器学习和人工智能&#xff0c;站在一个初学者的角度来回顾这些经历并编写这篇适合初学者的指南。我自学过一年机器学习和人工智能&#xff0c;我认为初学者在该领域还没有一个学习的途径&#xff0c;这是我创建这个指南的目的。在过去的几个月里&am…

idle显示出错信息 python_原来学Python最好的书是这一本?它在bookauthority里排名第三...

有一本学Python的书&#xff0c;也许你还没有关注到&#xff0c;它在bookauthority的Python类目中排名第三&#xff0c;要胜过太多太多的Python书。那就是《Python编程快速上手 让繁琐工作自动化》。就它本身来说&#xff0c;这本书不会让你变成一个职业软件开发者&#xff0c;…

“根本就不需要 Kafka 这样的大型分布式系统!”

由 Scala 和 Java 编写的 Kafka 是一种高吞吐量的分布式发布订阅消息系统&#xff0c;它可以处理消费者在网站中的所有动作流数据&#xff0c;不过&#xff0c;Kafka 也存在数据并非真正的实时传输、不支持物联网传感数据直接接入、监控不完善等缺点。事实上&#xff0c;作为开…

一份关于机器学习中线性代数学习资源的汇总

摘要&#xff1a; 本文是一份关于机器学习中线性代数学习指南&#xff0c;所给出的资源涵盖维基百科网页、教材、视频等&#xff0c;机器学习从业者可以从中选择合适的资源进行学习。对于机器学习而言&#xff0c;要学习的特征大多数是以矩阵的形式表示。线性代数是一门关于矩阵…

Linux环境_源码安装Unoconv实现文件在线预览doc,doxc,xls,xlsx,ppt,pptx 文件

因业务需求需要&#xff0c;用unoconv就可以轻松地实现利用LibOffice可以打开的文档的转换。 服务器版本 环境系统版本LinuxRed Hat Enterprise Linux Server release 7.6 (Maipo)LinuxCentOS Linux release 7.6 需要准备软件包 软件及版本下载链接LibreOffice_6.3.2_Linux_x…

车纷享:基于阿里云HBase构建车联网平台实践

摘要&#xff1a; 1. 业务介绍 车纷享是国内首家进行汽车共享开发和运营的公司。旗下共享汽车平台采用新能源汽车作为运营工具以B2CC2C汽车共享作为商业运营模式采用车联网技术作为运营管理技术目前已与国内多个城市建立合作。 1. 业务介绍 车纷享是国内首家进行汽车共享开发和…

promise用法_图解 Promise 实现原理(四):Promise 静态方法实现

作者&#xff1a;Morrain转发链接&#xff1a;https://mp.weixin.qq.com/s/Lp_5BXdpm7G29Z7zT_S-bQ前言Promise 是异步编程的一种解决方案&#xff0c;它由社区最早提出和实现&#xff0c;ES6 将其写进了语言标准&#xff0c;统一了用法&#xff0c;原生提供了Promise对象。更多…

这本零差评且有趣的Python算法书有点火~

普通程序员&#xff0c;不学算法&#xff0c;也可以成为大神吗&#xff1f;对不起&#xff0c;这个&#xff0c;绝对不可以。可是算法好难啊~~看两页书就想睡觉……所以就不学了吗&#xff1f;就一直当普通程序员吗&#xff1f;如果有一本算法书&#xff0c;看着很轻松……又有…

QuickBI助你成为分析师——数据源FAQ小结

摘要&#xff1a; 添加数据源的时候经常会遇到各种问题&#xff0c;下面来讲解一下常见情况&#xff0c;若仍有疑问扫码咨询哦&#xff01; 使用 Quick BI 分析数据时&#xff0c;需要先指定原始数据所在的数据源&#xff0c;测试连通数据源是数据分析的基础&#xff0c;下面让…

库函数strcmp的模拟实现

strcmp是字符串之间的比较&#xff0c;看官方说明 前面字符串大于后面的字符串返回大于0的数字&#xff0c;相等返回0&#xff0c;前面的字符串小于后面的&#xff0c;返回小于0的数字 strcmp的模拟实现 #include<string.h> #include<stdio.h>int my_strcmp(cons…

5种最流行的AI编程语言

摘要&#xff1a; 有没有兴趣来了解更多与AI开发有关的内容&#xff1f; 本文将介绍创建AI程序时可以使用的5种最佳语言。有没有兴趣来了解更多与AI开发有关的内容&#xff1f; 本文将介绍创建AI程序时可以使用的5种最佳语言。PythonPython语法简单&#xff0c;功能多样&#x…

VSFTPD实战02_需求

文章目录一、常用命令&#xff08;Linux&#xff09;二、 需求案例三、思路分析四、coding实战&#xff1a;① 创建ftp用户test 指定目录为/home/test② 为test设置密码③ 切换用户&#xff0c;查看目录五、限制用户目录① 编辑配置文件② 在/etc/vsftpd/目录下面&#xff0c;新…

axure web组件_AXURE原型设计:移动端选择器的应用

移动端的选择器就好比是web端的下拉列表&#xff0c;可以说是每个系统、软件必备的组件&#xff0c;也是移动端元件库的必备元件&#xff0c;文章对移动端选择器的不同种类以及原型应用进行了梳理分析&#xff0c;与大家分享。一般而言&#xff0c;移动端的选择器分为单选选择器…

Storm精华问答 | storm与Hadoop有什么区别?

戳蓝字“CSDN云计算”关注我们哦&#xff01;归于Apache社区&#xff0c;Storm被业界称为实时版Hadoop。随着越来越多的场景对Hadoop的MapReduce高延迟无法容忍。而目前已是分布式技术领域最新爆发点&#xff0c;Storm更是流计算技术中的佼佼者和主流。今天我们就一起来看看Sto…

QuickBI助你成为分析师——搞定数据源

摘要&#xff1a; QuickBI支持多种数据源连接&#xff0c;添加数据源是数据分析展示的第一步&#xff0c;下面来详细介绍一下产品数据源支持情况&#xff01; Quick BI是一个基于云计算的灵活的轻量级的自助BI工具服务平台&#xff0c;提供海量数据即时分析 &#xff0c;拖拽式…

光动能表怎么维护_男士手表什么牌子好,男士手表品牌推荐, 天梭、阿玛尼、西铁城、天王表、罗西尼、卡西欧男手表推荐...

本文目录一、男士手表分类和选购看点&#xff0c;男士手表什么牌子好二、天梭、阿玛尼、欧米茄、天王表、罗西尼、卡西欧等大品牌爆款男士机械手表推荐三、天梭、阿玛尼、卡西欧爆款男士石英手表推荐四、西铁城光动能男士手表推荐五、华为、佳明智能运动手表推荐本文由钟灵原创…