Love丶FFC's Blog

使用Python解算法题常用的一些小技巧(一)

2020-04-23 12:18:18
阅读:276   •   评论:0
标签:

1.列表切片操作

例如,A=[1,2,3,4]、B="1256U"。

若要取A的前两位,可以A=A[0:2],要取A的后三位,可以A=A[1:4]。

切片操作可以理解为截取[起始位置:结束位置(本身不包含,因此实际上会-1)]的部分。

再进一步,不一定两个位置都要写,有些情况下可以省略,例如A=A[0:2]可以写为A=A[:2],:的左部分不写的话,默认是0;A=A[1:4]可以写为A=A[1:],:的右部分不写的话,默认是列表的长度。

如果对列表(数组)下标从0开始的概念非常清晰,并且记住:的右半部分会-1,列表切片操作就非常简单。

同理,字符串截取也可以这样,例如B[:2]就等于"12",B[2:]就等于"56U"。

补充一点,A[-2:]代表截取A的最后两位,A[-2]代表截取A的倒数第二位。也就是说负号的操作和平时的一样,只不过顺序是从尾往头,而平时的顺序是从头往尾。

PAT乙级:1023 组个最小数中就用到列表切片的操作。

2.列表中常用的几个API(index、count、find、replace)

1.index

index函数可以查找一个值在列表中的索引。例如A=[2,5,6,9,8,3,2],则A.index(2)=0。但是列表A中实际上有两个2,index也提供查找的范围,假如我们要找到第二个2的索引,可以A.index(2,1(起始位置),len(A)(结束位置)),这样index函数就等同于在A[1:]中查找2的索引。

但其实有更好的方法,如果我们要查找到第二个2的索引,可以使用rfind函数。rfind函数是从列表的右边往左边查找,而index函数、find函数都是从列表的左边往右边查找。使用rfind函数查找2就可以写为A.rfind(2)

PAT乙级:1047 编程团体赛中就同时用到了index函数和find函数。

2.count

count函数可以统计一个值在列表中出现的次数,例如A=[2,3,5,6,9,2,2],则A.count(2)=3

PAT乙级:1021 个位数统计中就用到了count函数。

3.find

find函数的功能与index函数一致,但是在找不到的情况下,find函数会返回-1,而index函数会直接报错,所以在某些情况下find函数更适合。

CCF-CSP_20150903:模板生成系统中就用到了find函数。

4.replace

replace可以把字符串中的某种值替换为别的值然后返回新字符串,例如A="AAACCCWW68",则A.replace('A','D')的结果等于"DDDCCCWW68",但这样并没有改变A的值,需要同时进行赋值操作,A=A.replace('A','D')

PAT乙级:1039 到底买不买中就用到了replace函数。

之后会在刷题的过程中继续更新Python解题的一些小技巧和常用的API函数。

评论板

共有 0 条评论

--------查看该分类下最新文章--------
^
新版博客正在完善中!域名:http://www.loveffc:8080,点击跳转,完全移植后将去除端口号。

Copyright © 2018 - 2021 FFC的小站 - 滇 ICP 备 18010780 号 - 1

- Powered by WordPress & AliYun · Theme by FFC -

- Environment by Windows & XAMPP · Designed by WebStorm & VSCode -

已运行:

访问量:414316