「seen.txt」と「members.txt」の 2 つのファイルがあります。最初のファイル「seen.txt」には、投稿を見た人がリストされています。ファイルは次のような構造になっています。
Friend/Not Friend
Name #1
Number of mutual friends
Friend/Not Friend
Name #2
Number of mutual friends
2 番目のファイル「members.txt」には、グループ内のすべてのユーザーの詳細がリストされています。ファイルは次のような構造になっています。
Name #1
Some info about the person
Some more info about the person
Name #2
Some info about the person
Some more info about the person
今、私はメンバーであるが見られたリストにない人々の名前を表示するプログラムを作成したいと考えています. そのために、各ファイルの名前を格納する 2 つの辞書を作成します。完了したら、members_list 内の各メンバーを繰り返し処理し、それらが seen_list 内にあるかどうかを確認します。そうでない場合は、コンソールに名前を出力します。
これは私が書いたコードです:
seen = open('seen.txt').readlines()
members = open('members.txt').readlines()
i = 0
j = 0
seen_list = {}
members_list = {}
for lines in seen:
if i == 1:
seen_list[lines.strip()] = 1
i = 0
else:
i += 1
for lines in members:
if j == 0 or j == 3: # to get the first line and every third line to extract name
members_list[lines.strip()] = 1
j = 6
else:
j -= 1
for member in members_list:
if member not in seen_list:
print member
私のソリューションは非常に精巧で、はるかに短時間で迅速に実行できると思います。このプログラムをより効率的かつ短くするために、このプログラムで可能ないくつかのクールな Python ハックについて教えてもらえますか?