专栏首页程序员的知识天地人生苦短:Python里的17个超赞操作

人生苦短:Python里的17个超赞操作

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

1. 交换变量

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

输入

a = 5

b = 10

创建临时变量

temp = a

a = b

b = temp

print(a)

print(b)

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

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

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

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

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

1240

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

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

5. 字符串倒转

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

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

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

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

如果你在学习Python的过程中遇见了很多疑问和难题,可以加-q-u-n 227 -435-450里面有软件视频资料免费

6. list倒转

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

7. 二维矩阵转置

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

8. 链式比较

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

9. 链式调用

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

10. 复制list

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

方法一:b=a[:]。

方法二:b=list(a)。

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

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

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

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

12. 按value排序字典

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

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

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

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

13. for ... else语法

14. 用逗号分隔list

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

1240

15. 合并字典

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

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

方法三:d1.update()。

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

17. 从list中删除重复项

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

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 10月编程语言排行榜:C++夺回铜牌,Java依旧第一

    所谓铁打的 Java、C、C++,流水的编程语言,应该指的就是 TIOBE 编程语言排行榜了。

    老九君
  • scrapy之user-agent池

    常见的反爬策略有很多,今天我们一起跟随小省开始,ua的反爬之旅,咳咳咳,敲黑板喽!

    shengjk1
  • CSV文件在网络爬虫中的应用

    在上一个文章中详细的介绍了CSV文件内容的读取和写入,那么在本次文章中结合网络爬虫的技术,把数据获取到写入到CSV的文件中,其实利用爬虫的技术...

    无涯WuYa
  • openstack两个region分别用各自glance服务-&gt;共用glance服务

    登陆dashboard,切换RegionOne和RegionTwo的镜像一览,由原来各自的镜像列表变成了一样的镜像列表

    后端云
  • xshell工具在开发中的使用技巧

    这个没啥好说的,但是很实用,特别对于单显示器的情况。5.0或以上才支持,鼠标拖拽标签到屏幕某一个位置即可实现。

    后端云
  • 10月编程语言排行榜:Java第一,C++反超进前三!

    日前,TIOBE官网发布了10月份最新编程语言排行榜。通过榜单,我们可以了解到,Java再次夺冠,本次进入前三名的Java、C、C++。

    程序员宝库
  • 在Python中使用NLTK建立一个简单的Chatbot

    也许你听说过Duolingo(多邻国):一种流行的语言学习应用程序,它可以通过游戏来练习一种新的语言。由于其创新的外语教学风格,它非常受欢迎。它的思想很简单:每...

    AiTechYun
  • scrapy之ip池

    备注: process_request(request, spider) 当每个request通过下载中间件时,该方法被调用。 process_re...

    shengjk1
  • scrapy 传参

    shengjk1
  • 女博士被程序员嘲笑:代码能力太差,怎么招进来的;微软联合创始人保罗·艾伦病逝;GitLab 11.3.5 发布

    近日,有位程序员在论坛上的一段吐槽引发网友热议,该程序员称公司算法组的女博士经常问一些:怎么知道我用的是 python2 还是 python3? tab和空格混...

    程序员宝库

扫码关注云+社区

领取腾讯云代金券