python3编程 入门到实践,python3编程例子
01-字典列表集合中筛选
# 如何在列表字典集合中根据条件帅选数据
从随机导入产生均匀分布的随机整数矩阵
# 第一种
# data=[-1,2,3,-4,5]
# res=[]
#对于数据中的x:
#如果x 0:
#资源追加(十)
#打印(分辨率)
# a=randint(-10,10)
#打印(一份)
b=[randint(-10,10) for _ in range(10)]
#打印(二)
# 第二种
# 列表解析
B2=[如果x=0,则x为b中的x]
#打印(b2)
# 第三种过滤器函数
# 返回一个生成器对象然后可以取出元素
b3=滤波器(x:x=0,b)
#打印(下一步(b3))
#打印(列表(b3))
# 第四种字典
d={student%d % i : randint(50,100) for i in range(1,21) }
#打印(四)
# 获取分数高于90的学生
d1={k:v for k,v in d.items() if v=90}
#打印(d1)
g=filter(lambda item:item[1],d.items())
#打印(列表(g))
g=filter(lambda item:item[1],d.items())
#打印(字典(g))
# 第五种集合
s={randint(0,20) for _ in range(20)}
印刷品
s1={x for x in s if x %3==0}
打印(s1)视图代码
02-枚举
# 举例
从枚举导入枚举,唯一
# @唯一
#类别颜色(枚举):
#红色=1
# red_alias=2
#
#打印(彩色[红色])
# print(Color.red.name)
# print(Color.red.value)
类别颜色(枚举):
红色=1
橙色=2
黄色=3
绿色=4
蓝色=5
靛蓝=6
紫色=7
red_alias=1
对于彩色中的彩色:
打印(彩色)
以颜色换颜色。__成员_ _。项目():
打印(彩色)
打印(彩色[红色])
打印(颜色[红色]。姓名)
打印(颜色[红色]。值)
为我换颜色:
打印(即姓名,-,即值)视图代码
03-具名元组
04-根据字典值的大小对字典中的项排序
#将字典中的各项转换为元组使用内置函数分类的排序
#包含元组的列表是可以排序的(元组是可以比较大小的)
# print((3,2) (1,4))
依次从前到后比较
返回真实的
从随机导入产生均匀分布的随机整数矩阵
#第一种方法
d={k:randint(60,100) for k in abcdefg}
#打印(四)
l=[(v,k) for k,v in d.items()]
#打印(左)
l=排序(l,反向=真)
#打印(左)
真实的
{a: 87, b: 89, c: 86, d: 60, e: 99, f: 77, g: 87}
[(87, a )、(89, b )、(86, c )、(60, d )、(99, e )、(77, f )、(87, g)]
[(99, e )、( 89, b )、( 87, g )、( 87, a )、( 86, c )、( 77, f )、( 60, d)]
#第二种
d={k:randint(60,100) for k in abcdefg}
#打印(四)
l=list(zip(d.values()、d.keys()))
#打印(左)
l=排序(l,反向=真)
#打印(左)
真实的
{a: 72, b: 92, c: 85, d: 65, e: 75, f: 69, g: 62}
[(72, a )、(92, b )、(85, c )、(65, d )、(75, e )、(69, f )、(62, g)]
[(92, b )、(85, c )、(75, e )、(72, a )、(69, f )、(65, d )、(62, g)]
#第三种
d={k:randint(60,100) for k in abcdefg}
打印(d.items())
l=已排序(d.items(),key=lambda item:item[1],reverse=True)
打印(左)
p=list(enumerate(l,1))
打印(p)
t={}
对于我,p中的(k,v):
印刷(I,k,v)
t[k]=(i,v)
印刷(吨)
真实的
dict_items([(a ,96),( b ,85),( c ,85),( d ,71),( e ,87),( f ,98),( g ,82)])
[(f ,98)、( a ,96)、( e ,87)、( b ,85)、( c ,85)、( g ,82)、( d ,71)]
[(1,( d ,95)),(2,( a ,93)),(3,( f ,93)),(4,( c ,91)),(5,( b ,67)),(6,( e ,67)),(7,( g ,62))]
1 d 100
2 c 94
3 a 88
4 b 80
5 g 73
6 f 70
第七季第68集
{a: (1,98), g: (2,90), f: (3,84), e: (4,80), d: (5,66), c: (6,65), b: (7,60)}
查看代码
05如何统计序列中元素的频度
从随机导入产生均匀分布的随机整数矩阵
#随机生成一个列表有重复的数字
data=[randint(0,20) for _ in range(30)]
打印(数据)
#[16, 3, 6, 0, 4, 20, 1, 0, 13, 16, 13, 6, 14, 13, 16, 4, 14, 9, 12, 5, 4, 6, 1, 7, 18, 5, 6, 15, 14, 5]
#列表每个元素作为键,值默认为0(出现个数)
d=dict.fromkeys(data,0)
打印(四)
#{16: 0, 3: 0, 6: 0, 0: 0, 4: 0, 20: 0, 1: 0, 13: 0, 14: 0, 9: 0, 12: 0, 5: 0, 7: 0, 18: 0, 15: 0}
#迭代列表遇到某个数值就一统计数字出现个数
对于数据中的x:
d[x]=1
打印(四)
#{16: 3, 3: 1, 6: 4, 0: 2, 4: 3, 20: 1, 1: 2, 13: 3, 14: 3, 9: 1, 12: 1, 5: 3, 7: 1, 18: 1, 15: 1}
p=已排序([(v,k) for k,v in d.items()],reverse=True)
打印(p)
#[(5, 19), (2, 17), (2, 16), (2, 12), (2, 8), (2, 6), (2, 4), (2, 3), (2, 1), (2, 0), (1, 20), (1, 15), (1, 14), (1, 10), (1, 9), (1, 7), (1, 2)]
05.1集合统计频率
从随机导入产生均匀分布的随机整数矩阵
从集合导入计数器
#随机生成一个列表有重复的数字
data=[randint(0,20) for _ in range(30)]
#打印(数据)
p=计数器(数据)
l=p.most_common(3)
打印(p)
打印(左)
计数器({4: 4,11: 3,6: 3,7: 3,3: 2,17: 2,9: 2,20: 2,0: 2,10: 1,16: 1,2: 1,13: 1,15: 1,12: 1,18: 1})
[(4, 4), (11, 3), (6, 3)]
6,如何快速找到多个字典中的公共键键
第一种:
从随机导入随机样本
#打印(示例( abcdefgh ,3))
#[g , e , b]随机
d1={k:randint(1,4) for k in sample(abcdefgh ,randint(3,6)) }
#打印(d1)
#随机返回3-6名球员和进球数
#{d: 2, f: 1, e: 1, g: 3, c: 3, b: 2}
d2={k:randint(1,4) for k in sample(abcdefgh ,randint(3,6)) }
d3={k:randint(1,4) for k in sample(abcdefgh ,randint(3,6)) }
D1=[D1,d2,d3]
#3轮都有进球的球员
print([k for k in dl[0]if all(map(lambda d:k in d,dl[1:])))
#解释
#map(lambda d:k in d,dl[1:])和服务器端编程语言(专业超文本预处理器的缩写)的数组_映射一样的作用
#判断k是否在d2、d3中全部()表示全在第二种方法:
从随机导入随机样本
从函数工具导入减少
#打印(示例( abcdefgh ,3))
#[g , e , b]随机
d1={k:randint(1,4) for k in sample(abcdefgh ,randint(3,6)) }
#打印(d1)
#随机返回3-6名球员和进球数
#{d: 2, f: 1, e: 1, g: 3, c: 3, b: 2}
d2={k:randint(1,4) for k in sample(abcdefgh ,randint(3,6)) }
d3={k:randint(1,4) for k in sample(abcdefgh ,randint(3,6)) }
D1=[D1,d2,d3]
#3轮都有进球的球员
print(d1.keys())
打印(字典键(d1))
d=映射(字典键,dl)
dd=reduce(lambda a,b:a b,map(dict.keys,dl))
打印(dd)
dict_keys([f , b , a , c , e , d])
dict_keys([f , b , a , c , e , d])
{f , d , a , b}
7,如何让字典保持有序
从集合导入订单直接
从随机导入洗牌
从循环器导入帧内片
od=OrderedDict()
od[c]=1
od[b]=2
od[a]=3
print(od.keys())
玩家=列表( abcdefgh )
洗牌(玩家)
打印(播放器)
od=OrderedDict()
对于我,p在列举(玩家,1):
od[p]=i
印刷(外径)
def queryByOrder(d,a,b=None):
a -=1
如果b是无:
b=a 1
返回列表(islice(od,a,b))
print(queryByOrder(od,2,4))
odict_keys([c , b , a])
[c , d , a , e , b , g , f , h]
OrderedDict([(c ,1),( d ,2),( a ,3),( e ,4),( b ,5),( g ,6),( f ,7),( h ,8)])
[d , a , e]
8,如何实现用户历史记录功能
从随机导入产生均匀分布的随机整数矩阵
def guess(n,k):
如果n==k:
打印(猜对了,这个数字是% d . % k)
返回真实的
如果n k:
打印(猜大了,比%d小.% k)
elif n k:
打印(猜小了,比%d大.% k)
返回错误的
def main():
n=randint(1,100)
i=1
虽然正确:
line=input([%d]请输入一个数字: % i)
if line.isdigit():
k=int(行)
i=1
if guess(n,k):
破裂
elif line==quit :
破裂
if __name__==__main__ :
主()
[1] 请输入一个数字:24
猜小了,比24大。
[2] 请输入一个数字:56
猜小了,比56大。
[3] 请输入一个数字:4
猜小了,比四大。
[4] 请输入一个数字:
从集合导入队列
q=deque([],5)
问。追加(1)
q.append(2)
q.append(3)
q.append(4)
问。追加(5)
打印(问)
问。追加(6)
打印(问)
德克([1,2,3,4,5],maxlen=5)
德克([2,3,4,5,6],maxlen=5)
一来自随机导入产生均匀分布的随机整数矩阵
2从集合导入队列
3 def guess(n,k):
四如果n==k:
5打印(猜对了,这个数字是% d . % k)
6返回真实的
七如果n k:
8打印(猜大了,比%d小.% k)
9 elif n k:
10打印(猜小了,比%d大.% k)
11
12返回错误的
13
14 def main():
15 n=randint(1,100)
16 i=1
17 hq=deque([],5)
18虽然真实:
19行=输入([%d]请输入一个数字: % i)
20 if line.isdigit():
21 k=int(line)
22总部追加(k)
23 i=1
24 if guess(n,k):
25休息
26 elif line==quit :
27分钟
28 elif line==h?:
29打印(列表(总部))
30
31 if __name__==__main__ :
32主()改良版增加双端队列
泡菜模块:
从集合导入队列
进口泡菜
q=deque([],5)
问。追加(1)
q.append(2)
q.append(3)
q.append(4)
问。追加(5)
打印(问)
问。追加(6)
打印(问)
# pickle.dump(q,open(save.pkl , wb ))
b=pickle.load(open(save.pkl , rb ))
打印(二)
德克([1,2,3,4,5],maxlen=5)
德克([2,3,4,5,6],maxlen=5)
德克([2,3,4,5,6],maxlen=5)泡菜
泡菜保存文件格式
收藏
双端队列
K \u qRq(KKKKKe .
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。