python编程Tips记录(自用|持续更新)

这篇博客记录了Python编程中的实用技巧,包括牛客网获取输入输出、字符串操作、进制转换、序列处理、字典操作、函数应用等多个方面,是Python初学者和开发者巩固技能的好资料。
摘要由CSDN通过智能技术生成

记录工作中用到的python编程小知识。

1.牛客网获取输入输出

import sys
s = sys.stdin.readlines()
#按照上面的代码,那么s就等于如下:
#s = ['2\n','0 0\n','2 2\n']

记住列表里的每个元素都会带一个换行符,用strip()处理掉然后split然后把每个元素用int转成整数就可以了

input().split() #就是按空格分割的一个字符串类型的list
#以及
for line in sys.stdin:

另:https://blog.csdn.net/qq_39283195/article/details/90577000

2.颠倒字符串

a="3432535541787"
1:
print(a[::-1])

2:
b=list(a)
b.reverse()
print(''.join(b))

3:
c=len(a)-1
str_1=[]
while(c>=0):
    str_1.append(a[c])
    c -=1
print(''.join(c))

3.迭代与递归

递归(recursion):递归常被用来描述以自相似方法重复事物的过程,在数学和计算机科学中,指的是在函数定义中使用函数自身的方法。(A调用A)
迭代(iteration):重复反馈过程的活动,每一次迭代的结果会作为下一次迭代的初始值。(A重复调用B)
递归是一个树结构,从字面可以其理解为重复“递推”和“回归”的过程,当“递推”到达底部时就会开始“回归”,其过程相当于树的深度优先遍历。
迭代是一个环结构,从初始状态开始,每次迭代都遍历这个环,并更新状态,多次迭代直到到达结束状态

4.进制

10转2: a = bin(b)
10转8:a = oct(b)
10转16:a = hex(b)
int():
2转10:int(),注意引号 ,因为二进制是一个字符串

#结果是4
int('100',2)

8转10:int(),注意引号 ,因为八进制是一个字符串

#结果是4
int('04',8)

16转10:int(),注意引号,因为十六进制是一个字符串

int('0x4',16)

5.str.join() 参数仅一个,是一个序列

ori = ''
sq = (str(item[0]),' ',str(item[1]),' ',str(item[2]))
print(ori.join(sq))
#output:0 25 75
ori = ' '
sq = (str(item[0]),str(item[1]),str(item[2]))
print(ori.join(sq))
#output:0 25 75

join作用:将序列sq中的字符串和ori字符串交叉组合,以上两种结果相同

6.strip lstrip rstrip sys.stdin与input()

sys.stdin与input
sys.stdin.readline( )会将标准输入全部获取,包括末尾的’\n’,因此用len计算长度时是把换行符’\n’算进去了的,但是input( )获取输入时返回的结果是不包含末尾的换行符’\n’的。
因此如果在平时使用sys.stdin.readline( )获取输入的话,不要忘了去掉末尾的换行符,可以用strip( )函数(sys.stdin.readline( ).strip(’\n’))或sys.stdin.readline( )[:-1]这两种方法去掉换行。
也可以用split()直接获得除空格之外的值
s.strip(rm) 删除 s 字符串中开头、结尾处,位于 rm 删除序列的字符
s.lstrip(rm) 删除 s 字符串中开头处,位于 rm 删除序列的字符
s.rstrip(rm) 删除 s 字符串中结尾处,位于 rm 删除序列的字符

7.print("\t",end=’ ');

‘ ’替换自动换行

8.有序字典

from collections import orderedDict
dict_test = orderedDict() #然后其余用法和dict{}一致

9.大写小写/输出字母后的第5个字母/字符转ascii/ascii转字符

str = "www.runoob.com"
print(str.upper())          # 把所有字符中的小写字母转换成大写字母
print(str.lower())          # 把所有字符中的大写字母转换成小写字母
print(str.capitalize())     # 把第一个字母转化为大写字母,其余小写
print(str.title())          # 把每个单词的第一个字母转化为大写,其余小写 

字符转ascii/ascii转字符:
https://blog.csdn.net/cunchi4221/article/details/107475661

10.enumerate(a)

在这里插入图片描述

11.lambda

在这里插入图片描述

12.是否是数字 字母

在这里插入图片描述

13.列表合并

两个别表合并为一个列表:l1.extend(l2)
两个列表合并为一个字典:d = dict(zip(y, x))
两个列表交叉合并:

from itertools import chain
result = list(chain.from_iterable(zip(str1,str2)))
#注意:如果str1和str2长度不同,则会舍弃长度较长的那一列剩下的元素

14 列表去重不乱序

l1 = ['b','c','d','b','c','a','a']
l2 = list(set(l1))
l2.sort(key=l1.index)
l1 = ['b','c','d','b','c','a','a']
l2 = sorted(set(l1),key=l1.index)

15 一些lambda+排序,灵活且可自定义

#对char_list排序
char_list.sort(key = lambda c:c.lower())
count_d = sorted(count_d.items(),key= lambda item:item[1],reverse=True)
res.sort(key=lambda item:item[1]-item[0])

16 map() 映射

https://www.runoob.com/python/python-func-map.html

data = list(map(int,input().split()))
tmp = ' '.join(map(str,res[i]))

17.endwith()

是否以指定字符串结尾
if data.endwith(n):

18. 当元组只包含一个元素时,要以逗号结尾,否则为原本数据类型

如 type((1))输出为int

19 filter过滤函数/reduce累积函数

filter:
在这里插入图片描述

test = [1,2,3,4,5,6,7,8,9]
t = filter(lambda x:x%2==0,test)
for i in t:
    print(i)

reduce:

def add(x, y) :            # 两数相加
    return x + y
sum1 = reduce(add, [1,2,3,4,5])   # 计算列表和:1+2+3+4+5
sum2 = reduce(lambda x, y: x+y, [1,2,3,4,5])  # 使用 lambda 匿名函数
print(sum1)
print(sum2)

20.zfill()

自动填零

tmp = '124'
print(tmp.zfill(5))
#00124

青古の每篇一歌
《是风动》
是风动 还是幡动
轮回难道就不同

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值