1.如何在列表, 字典, 集合中根据条件筛选数据
from random import randint
data = [randint(-10,10) for _ in range(10)]
data
[4, 4, -5, 6, 7, 10, 5, -7, -6, -9]
# 筛选出列表中大于0的元素
# 使用filter函数
list(filter(lambda x:x>=0,data))
[4, 4, 6, 7, 10, 5]
# 列表解析
[x for x in data if x >= 0]
[4, 4, 6, 7, 10, 5]
timeit list(filter(lambda x:x>=0,data))
1.56 µs ± 33.5 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)
timeit [x for x in data if x >= 0]
625 ns ± 26.2 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)
# 字典解析
d = {x:randint(60,100) for x in range(1,21)}
d
{1: 87,
2: 86,
3: 97,
4: 92,
5: 79,
6: 90,
7: 78,
8: 97,
9: 63,
10: 97,
11: 91,
12: 69,
13: 86,
14: 83,
15: 84,
16: 83,
17: 70,
18: 86,
19: 93,
20: 88}
{k:v for k,v in d.items() if v > 90 }
{3: 97, 4: 92, 8: 97, 10: 97, 11: 91, 19: 93}
# 集合解析
s = set(data)
s
{-9, -7, -6, -5, 4, 5, 6, 7, 10}
{x for x in s if x % 2 == 0}
{-6, 4, 6, 10}
2.如何为元组中的每个元素命名, 提高程序可读性
#方案一,定义一系列数值常量
NAME,AGE,SEX,EMAIL = range(4)
student = (\'Tom\',\'16\',\'male\',\'tom@gmail.com\')
student[NAME]
\'Tom\'
#方案二,使用namedtuple
from collections import namedtuple
Student = namedtuple(\'Student\',[\'name\',\'age\',\'sex\',\'email\'])
#位置传参
s = Student(\'Tom\',\'16\',\'male\',\'tom@gmail.com\')
s
Student(name=\'Tom\', age=\'16\', sex=\'male\', email=\'tom@gmail.com\')
#关键字传参
s2 = Student(name=\'Tom\',age=\'16\',sex=\'male\',email=\'tom@gmail.com\')
s2
Student(name=\'Tom\', age=\'16\', sex=\'male\', email=\'tom@gmail.com\')
s.name
\'Tom\'
s.email
\'tom@gmail.com\'
isinstance(s,tuple)
True
3.如何统计序列中元素的出现频度
from random import randint
data = [randint(0,20) for _ in range(30)]
data
[8,
11,
16,
10,
11,
10,
13,
6,
20,
15,
19,
13,
4,
14,
8,
18,
9,
8,
9,
19,
11,
15,
9,
4,
2,
11,
11,
16,
3,
19]
#fromkeys:用于创建并返回一个新的字典。两个参数:第一个是字典的键,第二个(可选)是传入键的值,默认为None。
c = dict.fromkeys(data,0)
c
{8: 0,
11: 0,
16: 0,
10: 0,
13: 0,
6: 0,
20: 0,
15: 0,
19: 0,
4: 0,
14: 0,
18: 0,
9: 0,
2: 0,
3: 0}
for x in data:
c[x] += 1
c
{8: 3,
11: 5,
16: 2,
10: 2,
13: 2,
6: 1,
20: 1,
15: 2,
19: 3,
4: 2,
14: 1,
18: 1,
9: 3,
2: 1,
3: 1}
# 使用Counter
from collections import Counter
c2 = Counter(data)
c2
Counter({8: 3,
11: 5,
16: 2,
10: 2,
13: 2,
6: 1,
20: 1,
15: 2,
19: 3,
4: 2,
14: 1,
18: 1,
9: 3,
2: 1,
3: 1})
#找出频率出现最高的3个元素
c2.most_common(3)
[(11, 5), (8, 3), (19, 3)]
import re
txt = open(\'Alice.txt\').read()
c3 = Counter(re.split(\'\\W+\',txt))
c3
Counter({\'Alice\': 19,
\'was\': 38,
\'beginning\': 1,
\'to\': 44,
\'get\': 5,
\'very\': 12,
\'tired\': 1,
\'of\': 25,
\'sitting\': 1,
\'by\': 6,
\'her\': 15,
\'sisteron\': 1,
\'the\': 58,
\'bank\': 1,
\'and\': 44,
\'having\': 1,
\'nothing\': 5,
\'do\': 5,
\'once\': 1,
\'or\': 9,
\'twice\': 1,
\'she\': 45,
\'hadpeeped\': 1,
\'into\': 4,
\'book\': 4,
\'sister\': 1,
\'reading\': 1,
\'but\': 14,
\'it\': 45,
\'had\': 12,
\'nopictures\': 1,
\'conversations\': 1,
\'in\': 17,
\'what\': 6,
\'is\': 4,
\'use\': 3,
\'a\': 36,
\'thought\': 5,
\'without\': 2,
\'pictures\': 2,
\'conversation\': 1,
\'So\': 1,
\'considering\': 1,
\'own\': 1,
\'mind\': 2,
\'as\': 13,
\'well\': 5,
\'could\': 5,
\'for\': 11,
\'hot\': 3,
\'day\': 1,
\'made\': 2,
\'feel\': 1,
\'sleepy\': 2,
\'stupid\': 1,
\'whetherthe\': 1,
\'pleasure\': 1,
\'making\': 1,
\'daisy\': 1,
\'chain\': 1,
\'would\': 5,
\'be\': 8,
\'worth\': 1,
\'troubleof\': 1,
\'getting\': 3,
\'up\': 9,
\'picking\': 1,
\'daisies\': 1,
\'when\': 6,
\'suddenly\': 4,
\'WhiteRabbit\': 1,
\'with\': 10,
\'pink\': 1,
\'eyes\': 1,
\'ran\': 2,
\'close\': 2,
\'There\': 6,
\'so\': 8,
\'VERY\': 4,
\'remarkable\': 1,
\'that\': 18,
\'nor\': 1,
\'did\': 3,
\'Alicethink\': 1,
\'much\': 5,
\'out\': 8,
\'way\': 5,
\'hear\': 2,
\'Rabbit\': 4,
\'say\': 4,
\'toitself\': 1,
\'Oh\': 4,
\'dear\': 3,
\'I\': 21,
\'shall\': 3,
\'late\': 1,
\'thoughtit\': 1,
\'over\': 3,
\'afterwards\': 1,
\'occurred\': 1,
\'ought\': 1,
\'havewondered\': 1,
\'at\': 9,
\'this\': 8,
\'time\': 8,
\'all\': 9,
\'seemed\': 2,
\'quite\': 1,
\'natural\': 1,
\'actually\': 1,
\'TOOK\': 1,
\'A\': 1,
\'WATCH\': 1,
\'OUT\': 1,
\'OF\': 1,
\'ITS\': 1,
\'WAISTCOAT\': 1,
\'POCKET\': 1,
\'looked\': 3,
\'then\': 4,
\'hurried\': 1,
\'on\': 8,
\'started\': 1,
\'toher\': 1,
\'feet\': 2,
\'flashed\': 1,
\'across\': 2,
\'neverbefore\': 1,
\'seen\': 2,
\'rabbit\': 3,
\'either\': 3,
\'waistcoat\': 1,
\'pocket\': 1,
\'watch\': 1,
\'totake\': 1,
\'burning\': 1,
\'curiosity\': 1,
\'thefield\': 1,
\'after\': 3,
\'fortunately\': 1,
\'just\': 3,
\'see\': 7,
\'popdown\': 1,
\'large\': 3,
\'hole\': 3,
\'under\': 1,
\'hedge\': 1,
\'In\': 1,
\'another\': 3,
\'moment\': 2,
\'down\': 16,
\'went\': 5,
\'never\': 1,
\'onceconsidering\': 1,
\'how\': 6,
\'world\': 1,
\'again\': 4,
\'The\': 2,
\'straight\': 1,
\'like\': 5,
\'tunnel\': 1,
\'some\': 1,
\'dipped\': 1,
\'not\': 13,
\'amoment\': 2,
\'think\': 9,
\'about\': 6,
\'stopping\': 1,
\'herself\': 3,
\'before\': 4,
\'found\': 3,
\'herselffalling\': 1,
\'deep\': 2,
\'Either\': 1,
\'fell\': 2,
\'slowly\': 1,
\'shehad\': 1,
\'plenty\': 1,
\'look\': 1,
\'towonder\': 1,
\'going\': 2,
\'happen\': 1,
\'next\': 1,
\'First\': 1,
\'tried\': 2,
\'lookdown\': 1,
\'make\': 1,
\'coming\': 1,
\'too\': 4,
\'dark\': 3,
\'tosee\': 1,
\'anything\': 2,
\'sides\': 1,
\'andnoticed\': 1,
\'they\': 6,
\'were\': 6,
\'filled\': 1,
\'cupboards\': 2,
\'shelves\': 2,
\'here\': 4,
\'there\': 4,
\'saw\': 2,
\'maps\': 1,
\'hung\': 1,
\'upon\': 4,
\'pegs\': 1,
\'Shetook\': 1,
\'jar\': 2,
\'from\': 3,
\'one\': 6,
\'passed\': 1,
\'waslabelled\': 1,
\'ORANGE\': 1,
\'MARMALADE\': 1,
\'great\': 2,
\'disappointment\': 1,
\'itwas\': 1,
\'empty\': 1,
\'drop\': 1,
\'fear\': 1,
\'killingsomebody\': 1,
\'managed\': 1,
\'put\': 2,
\'shefell\': 1,
\'past\': 1,
\'Well\': 1,
\'such\': 2,
\'fall\': 4,
\'Ishall\': 1,
\'tumbling\': 1,
\'stairs\': 1,
\'How\': 3,
\'brave\': 1,
\'llall\': 1,
\'me\': 6,
\'home\': 1,
\'Why\': 1,
\'wouldn\': 1,
\'t\': 4,
\'even\': 3,
\'if\': 6,
\'off\': 4,
\'top\': 1,
\'house\': 1,
\'Which\': 1,
\'likelytrue\': 1,
\'Down\': 2,
\'Would\': 1,
\'NEVER\': 1,
\'come\': 2,
\'an\': 1,
\'end\': 1,
\'Iwonder\': 1,
\'many\': 2,
\'miles\': 2,
\'ve\': 2,
\'fallen\': 1,
\'said\': 3,
\'aloud\': 1,
\'must\': 1,
\'somewhere\': 2,
\'near\': 1,
\'centre\': 1,
\'earth\': 2,
\'Letme\': 1,
\'four\': 1,
\'thousand\': 1,
\'you\': 16,
\'learnt\': 1,
\'several\': 2,
\'things\': 1,
\'sort\': 2,
\'herlessons\': 1,
\'schoolroom\': 1,
\'though\': 2,
\'goodopportunity\': 1,
\'showing\': 1,
\'knowledge\': 1,
\'no\': 6,
\'tolisten\': 1,
\'still\': 2,
\'good\': 1,
\'practice\': 1,
\'yes\': 1,
\'s\': 5,
\'right\': 2,
\'distance\': 1,
\'wonder\': 3,
\'Latitudeor\': 1,
\'Longitude\': 2,
\'got\': 2,
\'idea\': 1,
\'Latitude\': 1,
\'nice\': 3,
\'grand\': 1,
\'words\': 2,
\'tosay\': 1,
\'Presently\': 1,
\'began\': 2,
\'rightTHROUGH\': 1,
\'funny\': 1,
\'ll\': 5,
\'seem\': 1,
\'among\': 1,
\'thepeople\': 1,
\'walk\': 1,
\'their\': 1,
\'heads\': 1,
\'downward\': 1,
\'Antipathies\': 1,
\'Ithink\': 1,
\'rather\': 1,
\'glad\': 1,
\'WAS\': 1,
\'listening\': 1,
\'thistime\': 1,
\'didn\': 2,
\'sound\': 1,
\'word\': 1,
\'shallhave\': 1,
\'ask\': 2,
\'them\': 2,
\'name\': 1,
\'country\': 1,
\'know\': 2,
\'Please\': 1,
\'Ma\': 1,
\'am\': 1,
\'New\': 1,
\'Zealand\': 1,
\'Australia\': 1,
\'triedto\': 1,
\'curtsey\': 1,
\'spoke\': 1,
\'fancy\': 1,
\'CURTSEYING\': 1,
\'re\': 1,
\'fallingthrough\': 1,
\'air\': 2,
\'Do\': 3,
\'manage\': 1,
\'And\': 2,
\'whatan\': 1,
\'ignorant\': 1,
\'little\': 7,
\'girl\': 1,
\'asking\': 1,
\'No\': 2,
\'llnever\': 1,
\'perhaps\': 1,
\'written\': 1,
\'else\': 1,
\'soonbegan\': 1,
\'talking\': 1,
\'Dinah\': 5,
\'miss\': 1,
\'night\': 1,
\'Ishould\': 1,
\'cat\': 1,
\'hope\': 1,
\'rememberher\': 1,
\'saucer\': 1,
\'milk\': 1,
\'tea\': 1,
\'my\': 3,
\'wish\': 1,
\'weredown\': 1,
\'are\': 1,
\'mice\': 1,
\'m\': 1,
\'afraid\': 1,
\'butyou\': 1,
\'might\': 3,
\'catch\': 1,
\'bat\': 1,
\'mouse\': 1,
\'But\': 1,
\'cats\': 4,
\'eat\': 5,
\'bats\': 3,
\'getrather\': 1,
\'saying\': 2,
\'dreamy\': 1,
\'ofway\': 1,
\'sometimes\': 1,
\'Dobats\': 1,
\'couldn\': 1,
\'answer\': 1,
\'eitherquestion\': 1,
\'matter\': 1,
\'which\': 2,
\'She\': 2,
\'feltthat\': 1,
\'dozing\': 1,
\'begun\': 2,
\'dream\': 1,
\'shewas\': 1,
\'walking\': 1,
\'hand\': 2,
\'veryearnestly\': 1,
\'Now\': 1,
\'tell\': 1,
\'truth\': 1,
\'ever\': 3,
\'abat\': 1,
\'thump\': 2,
\'came\': 3,
\'heap\': 1,
\'ofsticks\': 1,
\'dry\': 1,
\'leaves\': 1,
\'bit\': 1,
\'hurt\': 1,
\'jumped\': 1,
\'overhead\': 1,
\'herwas\': 1,
\'long\': 3,
\'passage\': 2,
\'White\': 1,
\'insight\': 1,
\'hurrying\': 1,
\'lost\': 1,
\'away\': 1,
\'wind\': 1,
\'itsay\': 1,
\'turned\': 2,
\'corner\': 1,
\'ears\': 1,
\'whiskers\': 1,
\'lateit\': 1,
\'behind\': 2,
\'thecorner\': 1,
\'longer\': 1,
\'foundherself\': 1,
\'low\': 1,
\'hall\': 4,
\'lit\': 1,
\'row\': 1,
\'lampshanging\': 1,
\'roof\': 1,
\'doors\': 1,
\'round\': 3,
\'locked\': 1,
\'been\': 1,
\'side\': 1,
\'theother\': 1,
\'trying\': 1,
\'every\': 1,
\'door\': 3,
\'walked\': 1,
\'sadly\': 1,
\'middle\': 1,
\'wondering\': 1,
\'Suddenly\': 1,
\'three\': 1,
\'legged\': 1,
\'table\': 2,
\'ofsolid\': 1,
\'glass\': 1,
\'except\': 1,
\'tiny\': 1,
\'golden\': 2,
\'key\': 3,
\'first\': 1,
\'belong\': 1,
\'thedoors\': 1,
\'alas\': 1,
\'locks\': 1,
\'orthe\': 1,
\'small\': 1,
\'any\': 3,
\'rate\': 2,
\'open\': 1,
\'ofthem\': 1,
\'However\': 2,
\'second\': 1,
\'lowcurtain\': 1,
\'noticed\': 1,
\'littledoor\': 1,
\'fifteen\': 1,
\'inches\': 1,
\'high\': 1,
\'keyin\': 1,
\'lock\': 1,
\'delight\': 1,
\'fitted\': 1,
\'opened\': 1,
\'led\': 1,
\'smallpassage\': 1,
\'larger\': 1,
\'than\': 1,
\'rat\': 1,
\'knelt\': 1,
\'andlooked\': 1,
\'along\': 1,
\'loveliest\': 1,
\'garden\': 1,
\'longed\': 1,
\'wander\': 1,
\'aboutamong\': 1,
\'those\': 2,
\'beds\': 1,
\'bright\': 1,
\'flowers\': 1,
\'cool\': 1,
\'fountains\': 1,
\'butshe\': 1,
\'head\': 2,
\'doorway\': 1,
\'ifmy\': 1,
\'go\': 1,
\'through\': 1,
\'poor\': 1,
\'ofvery\': 1,
\'shoulders\': 1,
\'wishI\': 1,
\'shut\': 1,
\'telescope\': 1,
\'onlyknow\': 1,
\'begin\': 1,
\'For\': 1,
\'thingshad\': 1,
\'happened\': 1,
\'lately\': 1,
\'fewthings\': 1,
\'indeed\': 1,
\'really\': 1,
\'impossible\': 1,
\'waiting\': 1,
\'shewent\': 1,
\'back\': 1,
\'half\': 1,
\'hoping\': 1,
\'find\': 1,
\'onit\': 1,
\'rules\': 1,
\'shutting\': 1,
\'people\': 1,
\'liketelescopes\': 1,
\'bottle\': 4,
\'whichcertainly\': 1,
\'neckof\': 1,
\'paper\': 1,
\'label\': 1,
\'DRINK\': 1,
\'ME\': 1,
\'beautifully\': 1,
\'printed\': 1,
\'letters\': 1,
\'It\': 1,
\'Drink\': 1,
\'wise\': 1,
\'littleAlice\': 1,
\'THAT\': 1,
\'hurry\': 1,
\'lookfirst\': 1,
\'whether\': 1,
\'marked\': 3,
\'poison\': 3,
\'read\': 1,
\'histories\': 1,
\'children\': 1,
\'whohad\': 1,
\'burnt\': 1,
\'eaten\': 1,
\'wild\': 1,
\'beasts\': 1,
\'other\': 1,
\'unpleasantthings\': 1,
\'because\': 1,
\'WOULD\': 1,
\'remember\': 1,
\'simple\': 1,
\'rulestheir\': 1,
\'friends\': 1,
\'taught\': 1,
\'red\': 1,
\'pokerwill\': 1,
\'burn\': 1,
\'hold\': 1,
\'cut\': 1,
\'yourfinger\': 1,
\'deeply\': 1,
\'knife\': 1,
\'usually\': 1,
\'bleeds\': 1,
\'hadnever\': 1,
\'forgotten\': 1,
\'drink\': 1,
\'almost\': 1,
\'certain\': 1,
\'disagree\': 1,
\'sooner\': 1,
\'orlater\': 1,
\'NOT\': 1,
\'venturedto\': 1,
\'taste\': 1,
\'finding\': 1,
\'fact\': 1,
\'sortof\': 1,
\'mixed\': 1,
\'flavour\': 1,
\'cherry\': 1,
\'tart\': 1,
\'custard\': 1,
\'pine\': 1,
\'apple\': 1,
\'roastturkey\': 1,
\'toffee\': 1,
\'buttered\': 1,
\'toast\': 1,
\'soon\': 1,
\'finishedit\': 1,
\'\': 1})
c3.most_common(10)
[(\'the\', 58),
(\'she\', 45),
(\'it\', 45),
(\'to\', 44),
(\'and\', 44),
(\'was\', 38),
(\'a\', 36),
(\'of\', 25),
(\'I\', 21),
(\'Alice\', 19)]
4.如何根据字典中值的大小, 对字典中的项排序
sorted([9,3,1,67,6])
[1, 3, 6, 9, 67]
from random import randint
d = {x:randint(60,100) for x in \'xyzabc\'}
d
{\'x\': 96, \'y\': 87, \'z\': 86, \'a\': 68, \'b\': 61, \'c\': 75}
d.keys()
dict_keys([\'x\', \'y\', \'z\', \'a\', \'b\', \'c\'])
d.values()
dict_values([96, 87, 86, 68, 61, 75])
#方案一:利用zip将字典转换成元组进行排序
sorted(zip(d.values(),d.keys()))
[(61, \'b\'), (68, \'a\'), (75, \'c\'), (86, \'z\'), (87, \'y\'), (96, \'x\')]
d.items()
dict_items([(\'x\', 96), (\'y\', 87), (\'z\', 86), (\'a\', 68), (\'b\', 61), (\'c\', 75)])
#方案二:传递sorted函数的key参数
sorted(d.items(),key=lambda x:x[1])
[(\'b\', 61), (\'a\', 68), (\'c\', 75), (\'z\', 86), (\'y\', 87), (\'x\', 96)]
5.如何快速找到多个字典中的公共键(key)
from random import randint,sample
from random import randint,sample
# 取样
sample(\'abcdef\',3)
[\'e\', \'d\', \'a\']
sample(\'abcdef\',randint(3,6))
[\'a\', \'d\', \'e\', \'c\']
# 找出s1,s2,s3中都存在的key
# 方案一:遍历
s1 = {x:randint(1,4) for x in sample(\'abcdef\',randint(3,6))}
s1
{\'c\': 1, \'b\': 2, \'e\': 3, \'d\': 3, \'f\': 1, \'a\': 2}
s2 = {x:randint(1,4) for x in sample(\'abcdef\',randint(3,6))}
s3 = {x:randint(1,4) for x in sample(\'abcdef\',randint(3,6))}
s2
{\'a\': 3, \'f\': 1, \'c\': 1, \'b\': 2, \'d\': 4, \'e\': 4}
s3
{\'a\': 3, \'d\': 1, \'e\': 1}
res = []
for k in s1:
if k in s2 and k in s3:
res.append(k)
res
[\'e\', \'d\', \'a\']
# 方案二:使用集合
s1
{\'c\': 1, \'b\': 2, \'e\': 3, \'d\': 3, \'f\': 1, \'a\': 2}
s1.keys()
dict_keys([\'c\', \'b\', \'e\', \'d\', \'f\', \'a\'])
s2.keys()
dict_keys([\'a\', \'f\', \'c\', \'b\', \'d\', \'e\'])
s1.keys() & s2.keys() & s3.keys()
{\'a\', \'d\', \'e\'}
# 方案三:使用map和reduce
# Python3里,map返回的结果是迭代器(iterator)
list(map(dict.keys,[s1,s2,s3]))
[dict_keys([\'c\', \'b\', \'e\', \'d\', \'f\', \'a\']),
dict_keys([\'a\', \'f\', \'c\', \'b\', \'d\', \'e\']),
dict_keys([\'a\', \'d\', \'e\'])]
from functools import reduce
# reduce() 函数会对参数序列中元素进行累积。
reduce(lambda a,b:a & b,map(dict.keys,[s1,s2,s3]))
{\'a\', \'d\', \'e\'}
6.如何让字典保持有序
d = {}
d[\'Tom\'] = (1,35)
d[\'Bob\'] = (2,37)
d[\'Kate\'] = (3,45)
d
{\'Tom\': (1, 35), \'Bob\': (2, 37), \'Kate\': (3, 45)}
# python3.6之后字典有序,按照数据存入的顺序
for k in d:
print(k)
Tom
Bob
Kate
# 有序字典OrderedDict
from collections import OrderedDict
d = OrderedDict()
d[\'Tom\'] = (1,35)
d[\'Bob\'] = (2,37)
d[\'Kate\'] = (3,45)
for k in d:
print(k)
Tom
Bob
Kate
from time import time
from random import randint
from collections import OrderedDict
d = OrderedDict()
p s =list(\'ABCDEFGH\')
start = time()
for i in range(8):
\'\'\'模拟选手比赛消耗时间并存入字典中\'\'\'
input()
p = p s.pop(randint(0,7-i))
end = time()
print(i + 1, p, end - start,sep=\' \')
d[p] = (i + 1, end - start)
print(\'-\' * 30)
for k in d:
print(k, d[k])
1 B 3.176684856414795
2 A 3.636547327041626
3 G 3.978159189224243
4 E 4.341858386993408
5 D 4.702983379364014
6 F 5.248721599578857
7 C 5.690965414047241
8 H 6.034142017364502
------------------------------
B (1, 3.176684856414795)
A (2, 3.636547327041626)
G (3, 3.978159189224243)
E (4, 4.341858386993408)
D (5, 4.702983379364014)
F (6, 5.248721599578857)
C (7, 5.690965414047241)
H (8, 6.034142017364502)
7.如何实现用户的历史记录功能(最多n条)
from collections import deque
# 创建双向队列
q = deque([], 5)
q
deque([])
q.append(1)
q.append(2)
q.append(3)
q.append(4)
q.append(5)
q
deque([1, 2, 3, 4, 5])
q.append(6)
q
deque([2, 3, 4, 5, 6])
from random import randint
from collections import deque
N = randint(0, 100)
history = deque([], 5)
def guess(k):
if k == N:
print(\'Right\')
return True
if k < N:
print(\'%s is less-than N\' % k)
else:
print(\'%s is greater-than N\' % k)
return False
while True:
line = input(\'Please input a number:\')
if line.isdigit():
k = int(line)
history.append(k)
if guess(k):
break
elif line == \'history\' or line == \'h\':
print(list(history))
Please input a number:50
50 is less-than N
Please input a number:80
80 is less-than N
Please input a number:90
90 is less-than N
Please input a number:91
91 is less-than N
Please input a number:92
92 is less-than N
Please input a number:93
93 is less-than N
Please input a number:h
[80, 90, 91, 92, 93]
Please input a number:95
95 is greater-than N
Please input a number:94
Right
import pickle
q
deque([2, 3, 4, 5, 6])
# 将数据存入文件
pickle.dump(q,open(\'history\',\'wb\'))
# 读取文件
q2 = pickle.load(open(\'history\',\'rb\'))
q2
deque([2, 3, 4, 5, 6])
继续阅读与本文标签相同的文章
上一篇 :
科学家担心的智能爆炸,真会有这一天吗?
下一篇 :
物联网、人工智能时代来临五大隐忧不可不提防
-
企业为什么要“多”申请专利?
2026-05-19栏目: 教程
-
为什么说中小型企业比较适合选择云服务器租用呢?
2026-05-19栏目: 教程
-
等保2.0必须关注的点
2026-05-19栏目: 教程
-
美颜SDK关键功能点介绍
2026-05-19栏目: 教程
-
应用架构的核心使命是什么?阿里高级技术专家这样说
2026-05-19栏目: 教程
