Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Mengakses Senarai Pratakrif Berdasarkan Input Rentetan dalam Python?

Bagaimanakah Saya Boleh Mengakses Senarai Pratakrif Berdasarkan Input Rentetan dalam Python?

Susan Sarandon
Susan Sarandonasal
2024-12-18 20:42:17460semak imbas

How Can I Access a Predefined List Based on a String Input in Python?

Mengakses Pembolehubah mengikut Nama Rentetan

Masalah:

Anda inginkan fungsi yang mengembalikan a senarai yang dipratentukan berdasarkan input rentetan. Sebagai contoh, diberikan rentetan "audio", fungsi itu harus mengeluarkan senarai ['mp3', 'wav'].

Penyelesaian Paling Mudah dengan Kamus:

Kamus standard boleh memenuhi keperluan ini dengan mudah.

get_ext = {'text': ['txt', 'doc'],
           'audio': ['mp3', 'wav'],
           'video': ['mp4', 'mkv']
}

get_ext['video']  # Returns ['mp4', 'mkv']

Menggunakan Fungsi:

Untuk aplikasi yang lebih maju, menggunakan fungsi mungkin lebih disukai.

Menetapkan Kaedah Dapatkan Kamus:

get_ext = get_ext.get

get_ext('video')  # Returns ['mp4', 'mkv']

Membungkus Kamus Di Dalam a Fungsi:

def get_ext(file_type):
    types = {'text': ['txt', 'doc'],
             'audio': ['mp3', 'wav'],
             'video': ['mp4', 'mkv']
    }

    return types.get(file_type, [])

Mencipta Kelas Tersuai untuk Diperluas:

class get_ext(object):
    def __init__(self):
        self.types = {'text': ['txt', 'doc'],
                      'audio': ['mp3', 'wav'],
                      'video': ['mp4', 'mkv']
        }

    def __call__(self, file_type):
        return self.types.get(file_type, [])

get_ext = get_ext()

get_ext('audio')  # Returns ['mp3', 'wav']

Ini membolehkan anda mengubah suai jenis fail secara dinamik.

get_ext.types['binary'] = ['bin', 'exe']

get_ext('binary')  # Returns ['bin', 'exe']

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengakses Senarai Pratakrif Berdasarkan Input Rentetan dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn