python两个list拼接_Python中实用却不常见的小技巧

本文介绍了一些Python编程中实用但不常见的小技巧,包括:变量值互换的Pythonic方式、使用join方法拼接list为字符串、找出list中最高频率元素、判断字符串字符相同性、反转字符串和列表、2D阵列转置、链式比较和函数调用、列表浅拷贝和深拷贝、字典get方法、按值排序字典、for...else用法、列表拼接、合并字典以及找列表最大值或最小值的index等。这些都是提高Python编程效率的好方法。
摘要由CSDN通过智能技术生成

2d5037c8c7ea233e23ac34292ed2eabe.png
这是一个老外总结的Python的小技巧: https:// hackernoon.com/python-t ricks-101-2836251922e0
主要来自PyTricks: https:// github.com/brennerm/PyT ricks


“Talk is cheap show me the code”,这是编程人条,说半天不如几行代码更有说服力。接下来,我们就用代码说明那些不怎么常见但是非常有用的小技巧。
变量值互换

1b7671b5f874980e92c0e239f9d90d50.png


这是非常Python范儿(Pythonic)的值交互方法,省去了C、C++中的中间变量
把list的所有元素拼接成一个字符串

8bdeb85f324af15cd149ffe7c0b997b0.png


这个技巧其实就是使用了字符串的join()方法,连接符可以是任意字符串,被join的可以是任意的可迭代对象(iterables),比如:列表、字典、集合、元组等。
找出list中出现频率最高的元素

756c640ed13831214e78a577d12b9d37.png


这里给出了两种方法,有兴趣的话,可以测试一下哪种方法更快。
判断两个字符串是否包含相同的字符

12461598fd9639e1c29cb6024a7558fd.png


其实判断的是两个字符串中字符相同且每个字符出现的次数也相同。
反转字符串

32c5a7d6de8d485d72f69e0d32cb41ec.png


这里有三种方法,第一种是最常见的,第三种是借用反转字符串的方法来反转整数。
反转列表

da084fa950c91949b9ca83b16930b8a3.png


这里反转列表的方法,其实跟上面反转字符串的方法是一样的。
转置2D阵列

82929b2dab81a7f3216279cca4f9c646.png


这里用到了内置函数zip,zip很强大,可用专门学习一下。
链式比较

e3d9bcb587d5bd9ad7ed992c83c458e7.png


这就是数学里面的数字比较,比C、C++简便
链式函数调用

3b4388f4ea41be208ac8a8054599df9f.png


(product if b else add)这个表达式返回的是函数对象,函数对象的调用
列表复制

b40e15ad13c7ee1b9e33af2bd70ad2cd.png


列表的浅拷贝和深拷贝,使用的时候要注意不同场景需要不同的拷贝
字典的get方法

53df5d79aa6b0b311f6393188f650a19.png


d.get('c', 3)就是取key为'c'的值,如果不存在该key则默认返回3
按值排序字典

25858c2e0a59b3d302a6a6cc295280a8.png


给出了三种方法,都很好的方法,第一种用到了lambda函数
这样也可以的用法:for else

e418f1ae011ac0cd5d93433d8a971f20.png


这个用法很少见,视情况而用。
把列表用符号拼接成字符串

ad742ffa49b38990bc7829c60820c20d.png


这个跟之前差不多,用到了map把整数转换成字符串
合并字典

aa6a225f1b7a0b8f0c7d1cf4f941fc22.png


通常是update方法,前两种很少见
找出列表中最大值或最小值的index

bb91457e9a9fb474fd969f452ef975c1.png


这个方法也很少见,尤其是用到__getitem__这样的私有方法
去掉列表中重复的元素

29ff8c684d424e7fb87eade4059a93ef.png


把list转换成set再换回list,这是很经典的列表去重方法
上面这些技巧大多来自github项目PyTricks,不妨去那里看看,以学到更多的Python技巧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值