開発環境
- OS X El Capitan - Apple (OS)
- Emacs (Text Editor)
- Python 3.5 (プログラミング言語)
Think Python (Allen B. Downey (著)、 O'Reilly Media)のChapter 10.(Lists)のExercises 10-11.(No. 2386)を取り組んでみる。
Exercises 10-11.(No. 2386)
コード(Emacs)
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import math
import time
import random
import bisect
def words2list(filename):
out = []
with open(filename) as f:
for word in f:
word = word.strip()
out.append(word)
return out
def in_bisect(elems, val):
l = len(elems)
i = bisect.bisect_left(elems, val)
if i != l and elems[i] == val:
return i
return None
if __name__ == '__main__':
filename = 'words.txt'
words = words2list(filename)
words.sort()
n = len(words)
l = []
for i, word in enumerate(words):
reversed_word = word[::-1]
j = in_bisect(words, reversed_word)
if not j is None:
l.append((word, reversed_word))
for pair in l[:10] + l[-10:]:
print(pair)
入出力結果(Terminal, IPython)
$ ./sample11.py ('aa', 'aa') ('aba', 'aba') ('abut', 'tuba') ('ad', 'da') ('ados', 'soda') ('aga', 'aga') ('agar', 'raga') ('agas', 'saga') ('agenes', 'senega') ('ah', 'ha') ('yak', 'kay') ('yam', 'may') ('yap', 'pay') ('yaps', 'spay') ('yar', 'ray') ('yard', 'dray') ('yaw', 'way') ('yaws', 'sway') ('yay', 'yay') ('yeh', 'hey') $
0 コメント:
コメントを投稿