python随机数和推导

 
 
随机数
时间 戳:种子

随机取1--33之间的1个随机数,可能重复 import random print(random.choice(range(1,33)))
如图:

遍历33次: import random for i in range(33):     print(random.choice(range(1, 33)))
如图:
随机取6个数,可能重复,返回的值是列表形式 choice:多个输出 就要加s
print(random.choices(range(1,33),k=6,weights=range(1,33))) 
 
如图:


随机取6个数,并且不重复,但是没有排序
print(random.sample(range(1,33),6))
如图:

导入模块:从你的第一个包到你所要导入的文件,一级一级往下写用 . 连接
即:和磁盘路径相似
如:
from 基础.面向对象.单例模式 import singleton
num=singleton
print(num)
导入文件里面的所有的类:
如:
from 基础.面向对象.单例模式 import *
即: 把类名换成 *



推导:具有语言简洁,速度快等优点。
推导式包括: 1.列表推导式 2.字典推导式 3.集合推导式
例1:整除3的数字列表
numbers = []
for x in range(100):
    if x % 3 == 0:
        numbers.append(x)
print(numbers)
如图:

列表推导:
nums = [x for x in range(100) if x%3==0]
print(nums)
如图:

def squared(x):
    return  x*x
nums = [squared(x) for x in range(100) if x%3==0]
print(nums)
如图:


nums1 = [x for x in range(100) if x%3==0]
#nums=(推导) :生成器
# nums此时并没有执行 而是创建了一个生成器

nums =(x for x in range(100) if x%3==0)
print( [y for y in nums]) #在这才开始执行
print(nums1)
如图:

二、字典推导式

字典推导和列表推导的使用方法是类似的,只不过中括号该改成大括号。直接举例说明:
例1:快速更换key和value
1.
mcase = {'a': 10, 'b': 34}
new_m = {k:v for k,v in mcase.items()}
# items:二级获取,即:获取'a'和10
print(new_m)
如图:

2.反过来
new_m={}
for k,v in mcase.items():
    new_m[v] = k
print(new_m)
如图:

三、集合推导式
它们跟列表推导式也是类似的。 唯一的区别在于它使用 大括号{}。
set1 = {x**2 for x in (1,2,2,6,4,5)}
print(set1)
如图:

例1: 用集合推导 字符串长度的集合
strings = ['a','is','with','if','file','exception']
lens = [len(s) for s in strings]
print(lens)
如图:

求 0到9 的平方
num = [x**2 for x in range(0,10)]
print(num)
如图:

2.求(x,y)其中x是0-5之间的偶数,y是0-5之间的奇数组成的元祖列表
L = []
for x in range(6):
    if x%2==0:
        for y in range(6):
            if y%2==1:
                L.append((x,y))
print(L)
LL = [(x,y) for x in range(6) if x%2==0 for y in range(6) if y%2==1 ]
print(LL)
如图:

求:1 5 9
m = [[1,2,3],[4,5,6],[7,8,9]]
print([m[x][x] for x in range(len(m))])
如图:

求: 3 5 7
m = [[1,2,3],[4,5,6],[7,8,9]]
print([m[x][len(m)-1-x] for x in range(len(m))])
如图:

完毕!

猜你喜欢

转载自blog.csdn.net/angelayouran/article/details/80432242