20个值得学习的Python技巧

本文为大家介绍20个值得记住的 Python 技巧,可以提升您编程技巧, 并为您节省大量时间。在平常编程过程中,以下技巧大多非常有用。 2020-12-09 11:52:28 Python字符串代码 用CSS实现一个抽奖转盘(附详细代码+思路) 本文介绍了怎样用 CSS 来实现一个抽奖转盘(代码+思路) ,一起来看一下吧。

本文为大家介绍20个值得记住的 Python 技巧,可以提升您编程技巧, 并为您节省大量时间。在平常编程过程中,以下技巧大多非常有用。

[[356644]]

本文为大家介绍20个值得记住的 Python 技巧,可以提升您编程技巧, 并为您节省大量时间。在平常编程过程中,以下技巧大多非常有用。

(原译文不通顺的地方,Python开发者 已做修改优化。)

1 字符串反转

使用切片反转字符串。

  1. str1="qwert"
  2. rev_str1=str1[::-1]
  3. #输出
  4. #trewq

2 使首字母大写

将字符串转换为首字母大写。使用 title()方法完成的。

  1. str1="thisisabook"
  2. print(str1.title())
  3. #ThisIsABook

3 在字符串中查找唯一元素

下面代码可用于查找字符串中所有的唯一元素。

  1. str1="aabbccccdddd"
  2. setset1=set(str1)
  3. new_str=''.join(set1)
  4. print(new_str)

4 重复打印字符串或列表

下面的代码中,对字符串或列表使用(*)。把字符串或列表复制多次。

  1. i=4
  2. str1="abcd"
  3. list1=[1,2]
  4. print(str1*i)
  5. #abcdabcdabcdabcd
  6. print(list1*i)
  7. #[1,2,1,2,1,2,1,2]

5 列表推导式

列表推导式为我们提供了一种在其他列表基础上创建列表的好方法。下面代码通过将旧列表的每个元素乘以 2 来创建新列表。

  1. list1=[1,2,3]
  2. new_list1=[2*iforiinlist1]
  3. #[2,4,6]

6 交换变量

不使用另一个变量,实现变量交换。

  1. x=1
  2. y=2
  3. x,yy=y,x
  4. print(x)#2
  5. print(y)#1

7 将字符串拆分为子字符串列表

我们使用字符串类中的.split()方法将字符串拆分为子字符串列表,还可以将要分割的分隔符作为参数传递。

  1. str1="Thisisabook"
  2. str2="test/str2"
  3. print(str1.split())#['This','is','a','book']
  4. print(str2.split('/'))#['test','str2']

8 将字符串列表组合成单个字符串

join()将作为参数传递的字符串列表组合为单个字符串。这种情况下,我们使用逗号分隔符将它们分开。

  1. list_str=['This','is','a','book']
  2. print(','.join(list_str))
  3. #This,is,a,book

9 检查回文字符串

我们已经讨论过如何反转字符串,因此回文字符串在 Python 中判断起来非常简单。

  1. str1="qqaabb"
  2. ifstr1==str1[::-1]:
  3. print("回文")
  4. else:
  5. print("不是")
  6. #不是

10 列表中的元素统计

使用 Python Counter 类。Python 计数器跟踪容器中每个元素的频数, Counter()返回一个字典,元素作为键,频数作为值。

另外使用 most_common()函数来获取列表中的 出现次数最多的元素。

  1. fromcollectionsimportCounter
  2. list1=['a','b','a','c','c','c']
  3. count=Counter(list1)
  4. print(count)
  5. print(count['b'])
  6. print(count.most_common(1))

11 判断两个字符串是否为异序词

异序词是通过重新排列不同单词或短语的字母而形成的单词或短语。如果两个字符串的 Counter 对象相等,那么它们就是相同字母异序词对。

  1. s1,s2,s3="acbde","abced","abcda"
  2. c1,c2,c3=Counter(s1),Counter(s2),Counter(s3)
  3. ifc1==c2:
  4. print('1和2是异序词')
  5. ifc1==c3:
  6. print('1和3是异序词')

12 使用 try-except-else 块

try / except 是 Python 中的异常处理模块,添加 else 语句,会在 try 块中没有引发异常的情况下运行。

  1. a,b=1,0
  2. try:
  3. print(a/b)
  4. #b为0的时候触发异常
  5. exceptZeroDivisionError:
  6. print("除数为0")
  7. else:
  8. print("不存在异常")
  9. finally:
  10. print("此段总是会执行")

13 通过枚举获取索引 / 值对

可以使用下面的脚本,遍历列表中的值及其索引。

  1. list1=['a','b','c','d','e']
  2. foridx,valinenumerate(list1):
  3. print('{0}:{1}'.format(idx,val))
  4. #0:a
  5. #1:b
  6. #2:c
  7. #3:d
  8. #4:e

14 获取对象的内存使用信息

下面脚本可用于检查对象的内存使用信息。

  1. importsys
  2. num=21
  3. print(sys.getsizeof(num))

15 合并两个字典

在 Python 2 中,使用 update()合并两个字典,Python 3 变得更加简单。

下面脚本中,两个字典被合并。在相交的情况下,使用第二个字典中的值。

  1. dic1={'app':9,'banana':6}
  2. dic2={'banana':4,'orange':8}
  3. com_dict={**dic1,**dic2}
  4. #{'apple':9,'banana':4,'orange':8}

16 计算代码执行所需的时间

下面代码使用库函数来计算执行代码所需的时间消耗多少毫秒。

  1. importtime
  2. s_time=time.time()
  3. a,b=1,2
  4. c=a+b
  5. e_time=time.time()
  6. time_taken_in_micro=(e_time-stime)*(10**6)
  7. print("程序运行的毫秒:{0}ms".format(time_taken_in_micro))

17 展开列表清单

有时不知道列表的嵌套深度,并且只想把所有元素放在一个普通列表中。可以通下面的方法得到数据:

  1. fromiteration_utilitiesimportdeepflatten
  2. #如果嵌套列表的深度只有1层
  3. defflatten(l):
  4. return[itemforsublistinlforiteminsublist]
  5. l=[[1,2,3],[3]]
  6. print(flatten(l))
  7. #[1,2,3,3]
  8. #如果不知道列表嵌套深度
  9. l=[[1,2,3],[4,[5],[6,7]],[8,[9,[10]]]]
  10. print(list(deepflatten(l,depth=3)))
  11. #[1,2,3,4,5,6,7,8,9,10]

18 从列表中随机取样

下面代码从给定列表中生成了 n 个随机样本。

  1. importrandom
  2. list1=['a','b','c','d','e']
  3. ns=2
  4. samples=random.sample(list1,ns)
  5. print(samples)
  6. #['a','c']

或者使用secrets库生成随机样本进行, 下面代码仅适用于 Python 3.x。

  1. importsecrets
  2. s_rand=secrets.SystemRanom()
  3. list1=['a','b','c','d','e']
  4. ns=2
  5. samples=s_rand.sample(list1,ns)
  6. print(samples)
  7. #['c','d']

19 数字列表化

下面代码将整数转换为数字列表。

  1. nums=123456
  2. #使用map
  3. digit_list=list(map(int,str(nums)))
  4. print(digit_list)
  5. #[1,2,3,4,5,6]
  6. #使用列表表达式
  7. digit_list=[int(x)forxinstr(nums)]
  8. print(digit_list)
  9. #[1,2,3,4,5,6]

20 唯一性检查

下面的函数检查列表中的元素是否唯一。

  1. defunique(l):
  2. iflen(l)==len(set(l)):
  3. print("所有元素是唯一的")
  4. else:
  5. print("存在重复")
  6. unique([1,2,3,4])
  7. #所有元素是唯一的
  8. unique([1,1,3,4])
  9. #存在重复

©本文为清一色官方代发,观点仅代表作者本人,与清一色无关。清一色对文中陈述、观点判断保持中立,不对所包含内容的准确性、可靠性或完整性提供任何明示或暗示的保证。本文不作为投资理财建议,请读者仅作参考,并请自行承担全部责任。文中部分文字/图片/视频/音频等来源于网络,如侵犯到著作权人的权利,请与我们联系(微信/QQ:1074760229)。转载请注明出处:清一色财经

(0)
打赏 微信扫码打赏 微信扫码打赏 支付宝扫码打赏 支付宝扫码打赏
清一色的头像清一色管理团队
上一篇 2023年5月5日 15:15
下一篇 2023年5月5日 15:15

相关推荐

发表评论

登录后才能评论

联系我们

在线咨询:1643011589-QQbutton

手机:13798586780

QQ/微信:1074760229

QQ群:551893940

工作时间:工作日9:00-18:00,节假日休息

关注微信