【python】Head First Python(五)
9435 ワード
つまらないから、『Head First Python』を見て時間をつぶす.この本は普通だと感じて、退屈な时にひっくり返すことができます.1章ごとにページ数が多いが、何も言わなかった.
まず第五章を見ます.知識点を記録します.
f.readline():ファイルの1行のデータを読み込む
split():文字列を所定の区切り文字でリストに分割できます.
sort():リスト内のデータを小さいものから大きいものに並べ替えると、元のデータが破壊され、reverse=Trueに転送されて降順することができます.
sorted():リスト内のデータを小さいものから大きいものに並べ替え、コピーされた空間に存在し、元のデータはまだあり、reverse=Trueに転送すると降順することができます.注意とsortの使い方が違います.コレクションをソートして、リストを返すことができます.
コレクションはスライスできませんが、ソートできます.
すなわちsorted(set(A)[0:3]が正しい
set(sorted(A)[0:3]エラー
4組の入力データに対して、各組のデータが重複しない最小の3つのデータを出力します.
入力はそれぞれ4つの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']
コード:
まず第五章を見ます.知識点を記録します.
f.readline():ファイルの1行のデータを読み込む
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]
4組の入力データに対して、各組のデータが重複しない最小の3つのデータを出力します.
入力はそれぞれ4つの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']