Pythonのお勉強の問題集より。
16進数ダンプ
fp = file(raw_input(), 'rb') buf = fp.read() fp.close() count = 0 data = '' for c in buf: if count % 16 == 0: print data data = '' print '%010X |' % count, print '%02X' % ord(c), if c.isspace(): c = ' ' elif not c.isalnum(): c = '.' data += c count += 1 while count % 16 != 0: print ' ', count += 1 print data
リストA,Bそれぞれから1つづつ取ってきたリストを簡単に生成する
lista = ['AA', 'AB', 'AC'] listb = ['BA', 'BB', 'BC'] newlist = [] for a in lista: for b in listb: newlist.append((a,b)) print newlist
リスト内包表記で簡潔に
lista = ['AA', 'AB', 'AC'] listb = ['BA', 'BB', 'BC'] newlist = [(a, b) for a in lista for b in listb] print newlist
リスト〜から、辞書〜を簡単に生成する
lst = [['Py','PyA'],['Py','PyB'],['Py','PyC'],['Pe','PeA'],['Pe','PeC']] dct = {} for el in lst: dct.setdefault(el[0], []).append(el[1]) print dct
n個の空リストを要素とするリストを簡単に生成する。
n = 3 lst =[] for i in range(n): lst.append([]) print lst
リスト内包表記で簡潔に
n = 3 lst = [[] for i in range(n)] print lst