all()関数の使い方
all() 関数は、与えられたイテラブル(リスト、タプル、集合など)内のすべての要素が True である場合に True を返し、それ以外の場合は False を返します。以下に、all() 関数の例を示します。
test1.py
#リスト内のすべての要素が True の場合:
A = [True, True, True, True]
result = all(A)
print(result) # 出力: True
test2.py
# リスト内の一部の要素が False の場合:
A = [True, True, False, True]
result = all(A)
print(result) # 出力: False
test3.py
# 空のリストの場合:
A = []
result = all(A)
print(result) # 出力: True
test4.py
# イテレブル内の要素が真偽値以外の場合:
A = [1, 2, 3, 0]
result = all(A)
print(result) # 出力: False (0 は `False` と評価されます)
使用例
リスト内のすべての値を絶対値に変換するには、Pythonの組み込み関数であるabs()を使って各要素を個別に変換し、新しいリストを作成する方法があります。または、リスト内包表記を使用して同じ結果を得ることもできます。
test1.py
# 文字列内の文字がすべて小文字のアルファベットの場合:
string = "hello"
result = all(char.islower() for char in string)
print(result) # 出力: True
test2.py
# 方法2: リスト内包表記を使用する方法
A = [10, -4, -8, -11, 3]
abs_values = [abs(num) for num in A]
print(abs_values)
# 出力: [10, 4, 8, 11, 3]
具体的な例題Atcoder ABC327
https://atcoder.jp/contests/abc327/tasks/abc327_c
1,2,3の3つの条件について一つ一つflag判定を行っていく。
abc327_c.py
A = []
for a in range(9):
x = list(map(int, input().split()))
A.append(x)
#print(A)
flag = True
# 1 row
def row(x):
y = [0]*9
for i in range(9):
y[x[i]-1] += 1
return all(y)
list1 = []
for a in A:
list1.append(row(a))
#print(list1)
if not all(list1):
flag = False
# 2 column
B = []
for i in range(9):
y = []
for j in range(9):
y.append(A[j][i])
B.append(y)
#print(B)
list2 = []
for b in B:
list2.append(row(b))
#print(list2)
if not all(list2):
flag = False
# 3×3
C = []
for a in range(0, 9, 3):
for b in range(0, 9, 3):
z = []
for i in range(a, a+3):
for j in range(b, b+3):
z.append(A[i][j])
C.append(z)
#print(C)
list3 = []
for c in C:
list3.append(row(c))
if not all(list3):
flag = False
print("Yes" if flag else "No")
まとめ
List内の要素をすべて判定するときに、大きな効果を発揮する!