【python】Head First Python(五)

无聊,看看《Head First Python》打发一下时间。感觉这本书很一般,可以无聊的时候翻翻。每一章页数很多,但都没讲什么东西。

 

先看第五章。记录一下知识点:

f.readline():读取文件的一行数据

split():可以将字符串按给定的分隔符拆分为列表

sort():将列表中的数据从小到大排序,原始数据被破坏,传入reverse = True 可以降序

sorted():将列表中的数据从小到大排序,存在复制的空间中,原始数据还在,传入reverse = True 可以降序。注意和sort的用法不同。可以对集合排序,返回一个列表。

集合不可切片,但可以排序。

sorted(set(A))[0:3]  正确

    set(sorted(A))[0:3]  错误

>>> s = apple,a,day,keeps,the,doctor,away
>>> l = s.split(,)
>>> l
[apple, a, day, keeps, the, doctor, away]
>>> d =[2,7,1,4,9,3]
>>> d.sort()
>>> d
[1, 2, 3, 4, 7, 9]
>>> d =[2,7,1,4,9,3]
>>> d2 = sorted(d)
>>> d2
[1, 2, 3, 4, 7, 9]
>>> d
[2, 7, 1, 4, 9, 3]

 

对四组输入数据,输出每组数据不重复的最小的三个数据:

输入 分别从四个txt中得到:

[‘2.01‘, ‘2.01‘, ‘2.22‘, ‘2.34‘, ‘2.34‘, ‘2.45‘, ‘3.01‘, ‘3.10‘, ‘3.21‘]
[‘2.11‘, ‘2.11‘, ‘2.23‘, ‘2.23‘, ‘2.59‘, ‘3.10‘, ‘3.10‘, ‘3.21‘, ‘3.21‘]
[‘2.22‘, ‘2.38‘, ‘2.49‘, ‘3.01‘, ‘3.01‘, ‘3.02‘, ‘3.02‘, ‘3.02‘, ‘3.22‘]
[‘2.18‘, ‘2.25‘, ‘2.39‘, ‘2.54‘, ‘2.55‘, ‘2.55‘, ‘2.55‘, ‘2.58‘, ‘2.58‘]

 

代码:

def sanitize(time_string):
    if - in time_string:
        splitter = -
    elif : in time_string:
        splitter = :
    else:
        return (time_string)

    (mins,secs) = time_string.split(splitter)
    return (mins + . + secs)

jaf = open(james.txt,r)
james = jaf.readline().strip().split(,)

juf = open(julie.txt,r)
julie = juf.readline().strip().split(,)

mif = open(mikey.txt,r)
mikey = mif.readline().strip().split(,)

saf = open(sarah.txt,r)
sarah = saf.readline().strip().split(,)

james_correct = [sanitize(c) for c in james]
julie_correct = [sanitize(c) for c in julie]
mikey_correct = [sanitize(c) for c in mikey]
sarah_correct = [sanitize(c) for c in sarah]

print(sorted(set(james_correct))[0:3])
print(sorted(set(julie_correct))[0:3])
print(sorted(set(mikey_correct))[0:3])
print(sorted(set(sarah_correct))[0:3])            
>>> ================================ RESTART ================================
>>> 
[2.01, 2.22, 2.34]
[2.11, 2.23, 2.59]
[2.22, 2.38, 2.49]
[2.18, 2.25, 2.39]

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。