プログラミング入門I
1月19日の提出状況
最後の最後にスペリングのミスです.残念です.
lists = []
sets = []
for _ in range(4):
lst = [random.randint(1, 30) for _ in range(20)]
lst.sort()
lists.append(lst)
sets.append(set(lst))
for lst in lists:
print(*lst)
common = sets[0]
for s in sets[1:]:
common &= s
not_appeared = set(range(1, 31)) - set().union(*sets)
print()
print('Numbers common to all lists:', *common)
print('Numbers not appeared in lists:', *not_appeared)
|
さて,この人はちょくちょくネット検索かAI検索によるソースを出してくる人なのですが,今回はどうだったのでしょうかね?共通項を探すための操作で,実はリスト sets の最初の要素である集合が壊れてしまうので,結果がおかしくなります.下の実行例を見てもらうとわかるのですが,2番目以降に入っていない数字が一度も出ない数字になってしまっています.結果を自分でよく確認してほしかったところですね.
2 2 7 7 8 8 9 10 12 13 14 14 14 19 19 21 23 27 27 29 2 2 2 2 3 5 7 9 10 11 13 13 13 14 17 19 19 21 24 30 3 3 4 6 13 14 15 15 15 18 19 19 20 22 23 25 28 29 29 29 1 2 2 6 8 9 10 11 13 14 14 14 14 15 16 22 25 26 26 29 Numbers common to all lists: 13 14 Numbers not appeared in lists: 27 12 |
lst1 = [random.randint(1,30) for k in range(20)]
lst2 = [random.randint(1,30) for k in range(20)]
lst3 = [random.randint(1,30) for k in range(20)]
lst4 = [random.randint(1,30) for k in range(20)]
lst1 = sorted(lst1)
lst2 = sorted(lst2)
lst3 = sorted(lst3)
lst4 = sorted(lst4)
print(*lst1)
print(*lst2)
print(*lst3)
print(*lst4)
print()
s1 = set(lst1)
s2 = set(lst2)
s3 = set(lst3)
s4 = set(lst4)
s12 = s1 & s2
s34 = s3 & s4
s_all = s12 & s34
print('Numbers common to all lists: ',end='')
print(*s_all)
s_n = set([i for i in range(1,31)])
s_n = s_n - s1
s_n = s_n - s2
s_n = s_n - s3
s_n = s_n - s4
print('Numbers not appeared in lists: ',end='')
print(*s_n)
|
最後にこれも悲しいです.こういうことを反復処理に落とし込むのがプログラミングの醍醐味ですからね.これはダメダメなやつです.