Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Mengakses Nilai Pembolehubah Menggunakan Nama Rentetan mereka dalam Python?
Mengakses Nilai Pembolehubah mengikut Nama Rentetan
Untuk banyak senario, carian pembolehubah berasaskan rentetan boleh dicapai menggunakan kamus. Begini caranya:
get_ext = {'text': ['txt', 'doc'], 'audio': ['mp3', 'wav'], 'video': ['mp4', 'mkv']}
Sekarang, anda boleh mendapatkan semula senarai yang diingini dengan input rentetan:
get_ext['audio'] # ['mp3', 'wav']
Jika anda lebih suka menggunakan fungsi, anda boleh menetapkan kaedah get kamus atau kaedah pengambilan itemnya (__getitem__) kepadanya:
get_ext = get_ext.get get_ext('video') # ['mp4', 'mkv']
Menetapkan kepada get_ext.get menyediakan lalai tingkah laku mengembalikan Tiada untuk kunci yang tidak diketahui. Sebaliknya, untuk KeyError, tetapkan kepada get_ext.__getitem__.
Sebagai alternatif, anda boleh membungkus kamus di dalam fungsi untuk memberikan nilai lalai tersuai:
def get_ext(file_type): types = {'text': ['txt', 'doc'], 'audio': ['mp3', 'wav'], 'video': ['mp4', 'mkv']} return types.get(file_type, [])
Untuk mengoptimumkan persediaan, anda boleh tentukan kelas dengan kaedah panggilan untuk mengendalikan carian:
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, [])
Pendekatan ini meningkatkan kecekapan dengan mencipta kamus jenis sekali sahaja dan membolehkan kemas kini dinamik:
get_ext = get_ext() get_ext.types['binary'] = ['bin', 'exe'] get_ext('binary') # ['bin', 'exe']
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengakses Nilai Pembolehubah Menggunakan Nama Rentetan mereka dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!