python

文章介绍了Python中生成随机数的方法,包括纯字母、数字+字母的随机字符串。还展示了如何跳出嵌套循环以及自定义可循环类。另外,详细讨论了collections模块中的deque容器,包括其特性、操作方法和限制长度的功能。最后提到了将yaml数据转换为特定格式的技巧。
摘要由CSDN通过智能技术生成

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))

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值