از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
روش استفاده از XOR در پایتون
سرفصلهای مطلب
XOR، مخفف عبارت OR انحصاری، یک عملیات منطقی است که دو عملوند را می گیرد و مقدار بولی را برمی گرداند. True اگر و فقط اگر دقیقاً یکی از عملوندها باشد True.
در پایتون می توانیم عملیات XOR را انجام دهیم روی دو یا چند مقدار با استفاده از روشها/عملگرهای مختلف، از جمله ^ اپراتور. در بخشهای بعدی این عملگر و تعدادی توابع مختلف را میبینیم که میتوانند به ما در دستیابی به نتیجه XOR یکسان کمک کنند، که برخی از آنها برای موارد استفاده خاص بهتر از بقیه هستند.
با استفاده از ^ اپراتور
در اینجا یک مثال از استفاده از ^ اپراتور برای انجام XOR روی دو مقدار بولی:
>>> True ^ False
True
>>> False ^ False
False
>>> True ^ True
False
همانطور که می بینید، دقیقاً چه زمانی یکی از عملوندها است True، عملیات XOR برمی گردد True. در غیر این صورت برمی گردد False.
با استفاده از xor تابع
ما همچنین می توانیم استفاده کنیم xor تابع از operator ماژول برای انجام XOR روی دو مقدار به عنوان مثال:
>>> from operator import xor
>>> xor(True, False)
True
>>> xor(False, False)
False
>>> xor(True, True)
False
همانطور که می بینید، xor تابع به همان روش کار می کند ^ عملگر، اما یک نحو جایگزین برای انجام عملیات XOR در پایتون فراهم می کند.
با استفاده از منطقی and و or اپراتورها
علاوه بر ^ اپراتور و operator.xor تابع، ما همچنین می توانیم از and و or عملگرها برای رسیدن به همان نتیجه XOR. این را می توان با استفاده از منطق زیر انجام داد:
xor = lambda a, b: (a and not b) or (not a and b)
در اینجا مثالی از استفاده از این منطق برای اجرای XOR در پایتون آورده شده است:
>>> (True and not False) or (not True and False)
True
>>> (False and not False) or (not False and False)
False
>>> (True and not True) or (not True and True)
False
همانطور که می بینید، این روش همان نتیجه را ایجاد می کند ^ اپراتور و xor تابع. با این حال، ممکن است کارایی کمتری داشته باشد زیرا شامل عملیات بیشتری است.
راه دیگر برای اجرای XOR در پایتون استفاده از آن است functools.reduce تابع، که به ما اجازه می دهد تا یک عملیات باینری را به دنباله ای از مقادیر اعمال کنیم. در اینجا یک مثال از استفاده است reduce برای انجام XOR روی لیستی از مقادیر بولی:
>>> from functools import reduce
>>> from operator import xor
>>> reduce(xor, (True, False, False, True))
False
همانطور که می بینید، تابع کاهش اعمال می شود xor تابع هر عنصر لیست، از دو عنصر اول شروع شده و سپس با نتیجه عملیات قبلی و عنصر بعدی در لیست ادامه مییابد. در این صورت نتیجه نهایی است False، زیرا تعداد True مقادیر در لیست زوج است.
یکی از مزایای این کار این است که میتوانیم راحتتر از آن برای اجرای XOR استفاده کنیم روی تعداد دلخواه مقادیر
نتیجه
در این مقاله چهار روش مختلف برای اجرای XOR در پایتون دیده ایم: استفاده از ^ اپراتور، با استفاده از منطقی and/or اپراتورها با استفاده از xor تابع از operator ماژول، و با استفاده از functools.reduce تابع. هر چهار راه برای انجام این کار یک نحو ساده و مختصر برای انجام عملیات XOR در پایتون ارائه میکنند.
(برچسبها به ترجمه)# python
منتشر شده در 1403-01-03 01:29:03

