1. 输入
n个整数,空格间隔:
n=int(input())
arr=list(map(int, input().split()))
#map的第一个参数int将输入限定为整数,
#map第一个参数为float时,参数可为整数或浮点数
2. 循环
range(start, stop[, step])
参数说明:
start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5);
stop: 计数到 stop 结束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5
step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)
循环生成列表:
listt=[chr(i) for i in range(65,89)]
3. 字符串
chr(65) #获取ascll码对应的字符
ord('A') #获取字符的ascll
4. 切片
字符串类型使用str[-1:]默认为倒序,列表型使用[-1:]顺序不变,切片最多可有三个参数:
>>> str="1234"
>>> str[-2:]
'34'
>>> str[-2:-1]
'3'
>>> str[-2:-0]
''
>>> lt=[1,2,3,4]
>>> lt[::-1]
[4, 3, 2, 1]
>>> lt[:3:-1]
[]
>>> lt[0:3:-1]
[]
>>> lt[1::-1]
[2, 1]
>>> lt[1:1:-1]
[]
>>> lt[2:1:-1]
[3]
>>> str[::-1]
'4321'```
# 5. 进制转换
```python
print(bin(0o67)) #2进制
print(hex(100)) #16进制
print(oct(0x10)) #8进制
print(int(0b10)) #10进制
6. 格式化输出
https://www.cnblogs.com/qinchao0317/p/10699717.html
7. 数据类型
python中浮点输出默认四舍五入
https://www.runoob.com/python3/python3-data-type.html
8. queue
https://www.pianshen.com/article/3255431131/
9. 二维数组
正确的方法
cols= 3
rows = 2
memo = [[1] * m for i in range(n) ]
下面这种做法是错误的
memo = [[1] * m ] * n
这会导致 memo[0] == memo[1],改变其中一个子数组的值,另一个子数组也会一起变
10. list
a.pop(index)
:删除列表a中index处的值,并且返回这个值.del(a[index])
:删除列表a中index处的值,无返回值. del中的index可以是切片,所以可以实现批量删除.- ```a.remove(value)``:删除列表a中第一个等于value的值,无返回.
11. set
temp.remove(1)
:remove方法删除元素时,如果元素不存在,会引发KeyError的错误
temp.discard(999)
:discard方法删除元素时,元素不存在,不会引发任何错误
temp.pop()
:从set中随机删除并返回一个元素,set为空会引发KeyError
temp.clear()
:移除set中的所有元素
12. dictionary
- Python字典的clear()方法(删除字典内所有元素)
dict = {'name': '我的博客地址', 'alexa': 10000, 'url': 'http://blog.youkuaiyun.com/uuihoo/'}
dict.clear(); # 清空词典所有条目
- Python字典的pop()方法(删除字典给定键 key 所对应的值,返回值为被删除的值)
site= {'name': '我的博客地址', 'alexa': 10000, 'url':'http://blog.youkuaiyun.com/uuihoo/'}
pop_obj=site.pop('name') # 删除要删除的键值对,如{'name':'我的博客地址'}这个键值对
print pop_obj # 输出 :我的博客地址
- Python字典的popitem()方法(随机返回并删除字典中的一对键和值)
site= {'name': '我的博客地址', 'alexa': 10000, 'url':'http://blog.youkuaiyun.com/uuihoo/'}
pop_obj=site.popitem() # 随机返回并删除一个键值对
print pop_obj # 输出结果可能是{'url','http://blog.youkuaiyun.com/uuihoo/'}
- del 全局方法(能删单一的元素也能清空字典,清空只需一项操作)
site= {'name': '我的博客地址', 'alexa': 10000, 'url':'http://blog.youkuaiyun.com/uuihoo/'}
del site['name'] # 删除键是'name'的条目
del site # 清空字典所有条目
13. 匿名函数 lambda
https://blog.youkuaiyun.com/weixin_43790276/article/details/90730797
14. sort自定义
python3取消了python2中sort的cmp函数,换用面向对象重载lt方法实现
15. heapq模块实现priorityQueue
import heapq as hp
arr=[]
hp.heapify(arr)
hp.heappush(arr,1)
hp.heappush(arr,3)
hp.heappush(arr,-2)
print(arr)
hp.heappop(arr)
print(arr)
hp.heappop(arr)
print(arr)
hp.heappushpop(arr,999)
print(arr)
class Xxm:
def __init__(self,a,b):
self.aa=a
self.bb=b
def __lt__(self,other):
return self.bb<other.bb
arr1=[]
hp.heappush(arr1,Xxm(1,3))
hp.heappush(arr1,Xxm(3,2))
hp.heappush(arr1,Xxm(4,0))
tmp=hp.heappop(arr1)
# tmp=
# print(hp.heappop(arr1))
print(tmp.aa,tmp.bb)
for i in range(len(arr1)):
print(arr1[i].aa,arr1[i].bb)
16. bisect
bisect_left
为查找大于等于value的第一个位置
bisect_right
查找大于value的第一个位置
import bisect as bs
arr=[1,2,3,3,3,5,6]
print(bs.bisect(arr,3))
print(bs.bisect_left(arr,3))
print(bs.bisect_right(arr,3))
print(bs.bisect(arr,4))
print(bs.bisect_left(arr,4))
print(bs.bisect_right(arr,4))
5
2
5
5
5
5