از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
روش استفاده از 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