如何在Python中判断tuple元组内的两个指定元素是否相邻?
Python判断元组内两个元素是否相邻的实现方案
- 针对题目给定无重复元素的元组场景,最简实现代码如下:
# 定义示例元组 fruit_tuple = ("apple", "pear", "banana", "watermelon") # 分别获取两个待判断元素的索引 pear_idx = fruit_tuple.index("pear") banana_idx = fruit_tuple.index("banana") # 索引差值的绝对值为1即代表相邻 is_adjacent = abs(pear_idx - banana_idx) == 1 print(is_adjacent) # 运行输出:True
该方法仅适用于两个待判断元素在元组中都唯一存在的场景,符合本题示例的使用条件。
- 通用兼容场景实现(支持元素重复、元素不存在的边界情况):
如果需要适配更复杂的元组情况,比如元组内存在多个重复的待判断元素、某一个元素不存在,可使用遍历相邻元素对的方案:
def is_two_items_adjacent(target_tuple, item_a, item_b): # 遍历所有相邻元素对 for i in range(len(target_tuple) - 1): # 无顺序匹配相邻元素组合 if {target_tuple[i], target_tuple[i+1]} == {item_a, item_b}: return True return False # 测试示例 test_tuple = ("apple", "pear", "banana", "watermelon") print(is_two_items_adjacent(test_tuple, "pear", "banana")) # 输出:True
该函数只要在元组中找到任意一组两个元素相邻的组合就会返回True,遍历完所有相邻对都没找到则返回False,兼容性更强。
内容的提问来源于stack exchange,提问作者liuxu
相关产品推荐
相关产品推荐

