<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def read_dynamic_inasafe_field(inasafe_fields, dynamic_field, black_list=None):
 """Helper to read inasafe_fields using a dynamic field. :param inasafe_fields: inasafe_fields keywords to use. :type inasafe_fields: dict :param dynamic_field: The dynamic field to use. :type dynamic_field: safe.definitions.fields :param black_list: A list of fields which are conflicting with the dynamic field. Same field name pattern. :return: A list of unique value used in this dynamic field. :return: list """

    pattern = dynamic_field['key']
    pattern = pattern.replace('%s', '')

    if black_list is None:
        black_list = []

    black_list = [field['key'] for field in black_list]

    unique_exposure = []
    for field_key, name_field in list(inasafe_fields.items()):
        if field_key.endswith(pattern) and field_key not in black_list:
            unique_exposure.append(field_key.replace(pattern, ''))

    return unique_exposure