1.python生成随机数
import string,random
def get_rand_chr():
# s = string.ascii_lowercase # 所有小写字母(a-z)
# s=string.ascii_letters #所有大小写字母(a-z,A-Z)
s=string.ascii_uppercase #所有大写字母(A-Z)
r = random.choice(s)
2.python生成随机数字+字母
import random
from string import ascii_letters,digits
def get_rand_str(length):
# random.sample 在第一个参数中随机取指定长度的数据列表
return ''.join(random.sample(ascii_letters+digits,length))
3.一次性退出嵌套循环
names = ['zhangshan','lisi','wangwu']
is_found = False
for name in names:
if is_found:
break
for n in name:
if n == 's':
is_found=True
break
print(n)
4.显示循环的的index和值
scores = [98,97,86,45,23]
for order,s in enumerate(scores,1):
print(order,s)
5.实现自己的可循环类 - 随机数循环
# 循环的本质
#1.iterable
#2.iter('hello'):'hello'.__iter__(),返回iterator
#3.next(iterator):__next__()
# 实现自己的可循环类 - 随机数循环
import random
class RandomCount:
def __iter__(self):
return self
def __next__(self):
r = random.randint(1,10)
if r == 9:
raise StopIteration
return r
rc = RandomCount()
for s in rc:
print(s)
6.deque详解
deque 类可以指定这个队列的大小,如果这个队列满员了,还可以从反向端删除过期的元素,然后在尾端添加新的元素 deque类是python标准库collections模块中的一项,它提供了两端都可以操作的序列,这意味着,在序列的前后你都可以执行添加或删除操作。1.创建deque序列:
from collections import deque
d=deque()
2.deque提供了类似list的操作方法:
d=deque()
d.append(3)
d.append(8)
d.append(1)
那么此时d=deque([3,8,1]),len(d)=3,d[0]=3,d[-1]=1
3.两端都使用pop:
d=deque(‘12345’)
那么d=deque(['1', '2', '3', '4', '5'])
d.pop()抛出的是’5’,d.leftpop()抛出的是’1’,可见默认pop()抛出的是最后一个元素。
4.限制deque的长度
d=deque(maxlen=20)
for i in range(30):
d.append(str(i))
此时d的值为d=deque(['10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23', '24', '25', '26', '27', '28', '29'], maxlen=20),可见当限制长度的deque增加超过限制数的项时,另一边的项会自动删除。
5.添加list各项到deque中:
d=deque([1,2,3,4,5])
d.extend([0])
那么此时d=deque([1,2,3,4,5,0])
d.extendleft([6,7,8])
此时d=deque([8, 7, 6, 1, 2, 3, 4, 5, 0])
7.将yaml文件的数据格式:{'name': ['收款合同', '付款合同'], 'amount': [550, 1000]}转为[(x,y),(x1,y1)]这种格式,即[('收款合同', 550), ('付款合同', 1000)]
#例如
content = {'name': ['收款合同', '付款合同', '抵押合同'], 'amount': [550, 1000, 3000]}
data = list(content.values())
res = list(zip(*data))