17个高效技巧:一行python,十行C++

本文介绍了17个能提升开发效率的Python技巧,包括交换变量值、列表元素组合、查找列表最高频率值、字符串和列表操作、字典处理等。这些技巧在文本处理中尤其有用,展现了Python的简洁和强大。
摘要由CSDN通过智能技术生成

目录

1、交换变量值

2、将列表中的所有元素组合成字符串

3、查找列表中频率最高的值

4、检查两个字符串是不是由相同字母不同顺序组成

5、反转字符串

6、反转列表

7、转置二维数组

8、链式比较

9、链式函数调用

10、复制列表

11、字典 get 方法

12、通过「键」或「值」排序字典元素

13、For Else

14、转换列表为逗号分割符格式

15、合并字典

16、列表中最小和最大值的索引

17、移除列表中的重复元素


看到本文标题中“一行python,十行C++”(开发效率),我自己都不服;但我还有一句话没说:十行C++,一行python(速度)。

这17个技巧中有很多非常适合文本处理的技巧,而文本处理的应用领域可以非常广泛。

简洁往往意味着晦涩难懂,是时候见证基础强弱了。

1、交换变量值

>>> a,b=5,10
>>> print(a,b)
5 10
>>> a,b=b,a
>>> print(a,b)
10 5
>>>

点评:语句a,b=b,a的作用是交换对象a、b的值。拨开迷雾见真章:

>>> a,b=5,10
>>> id(a)
1842769088
>>> id(b)
1842769248
>>> a,b=b,a
>>> id(a)
1842769248
>>> id(b)
1842769088
>>> id(10)
1842769248
>>> id(5)
1842769088
>>>

2、将列表中的所有元素组合成字符串

>>> a=['Python','is','awesome']
>>> print(" ".join(a))
Python is awesome
>>>

点评:看到python在词语处理方面的优势了吧?还有很多。

3、查找列表中频率最高的值

方式一:
>>> a=[1,2,3,1,2,3,2,2,3,4,1]
>>> print(max(set(a),key=a.count))
2
方式二:
>>> from collections import Counter
>>> cnt=Count(a)
>>> cnt=Counter(a)
>>> print(cnt.most_common(3))
[(2, 4), (1, 3), (3, 3)]
>>>

点评:python中一些语句的用法把C++中的多态特性发挥到极致,比如max(set(a),key=a.count)。等价过程如下:

>>> a=[1,2,3,1,2,3,2,2,3,4,1]
>>> aset=set(a)
>>> temp=[]
>>> for i in aset:
      temp.append((a.count(i),i))
>>> temp.sort(key=lambda x:x[0],reverse=True)
>>> temp
[(4, 2), (3, 1), (3, 3), (1, 4)]
>>> print(temp[0][1])
2
>>>

cnt.most_common(3)语句可以得出频率最大的前三个值,但是是以元组构成的列表表示出来。cnt和temp类似,只不过cnt各元组中第一项是值,第二项是频率,和temp中各元组的第一、二项含义相反。

4、检查两个字符串是不是由相同字母不同顺序组成

>>> from collections import Counter
>>> str1='abcde'
>>> str2='dbeac'
>>> Counter(str1)
Counter({'a': 1, 'b': 1, 'c': 1, 'd': 1, 'e': 1})
>>> Counter(str2)
Counter({'d': 1, 'b': 1, 'e': 1, 'a': 1, 'c&
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值