diff --git a/src/cryptography/x509.py b/src/cryptography/x509.py
index 3509303..eb7731f 100644
--- a/src/cryptography/x509.py
+++ b/src/cryptography/x509.py
@@ -464,7 +464,7 @@
 
 class CertificatePolicies(object):
     def __init__(self, policies):
-        if not all(map(lambda x: isinstance(x, PolicyInformation), policies)):
+        if not all(isinstance(x, PolicyInformation) for x in policies):
             raise TypeError(
                 "Every item in the policies list must be a "
                 "PolicyInformation"
@@ -489,9 +489,7 @@
 
         self._policy_identifier = policy_identifier
         if policy_qualifiers and not all(
-            map(
-                lambda x: isinstance(x, PolicyQualifierInfo), policy_qualifiers
-            )
+            isinstance(x, PolicyQualifierInfo) for x in policy_qualifiers
         ):
             raise TypeError(
                 "policy_qualifiers must be a list of PolicyQualifierInfo "
@@ -558,7 +556,7 @@
     def __init__(self, organization, notice_numbers):
         self._organization = organization
         if notice_numbers and not all(
-            map(lambda x: isinstance(x, int), notice_numbers)
+            isinstance(x, int) for x in notice_numbers
         ):
             raise TypeError(
                 "notice_numbers must be a list of integers or None"
