两个列表查看除了首尾之外所有相同的值并且返回索引python
时间: 2024-02-05 20:27:09 浏览: 78
python找出一个列表中相同元素的多个索引实例
5星 · 资源好评率100%
如果你想要查找两个列表中除了首尾之外的所有相同的值,并返回它们在原始列表中的索引,你可以按照以下步骤进行操作:
1. 确保两个列表的长度相同且不为空。如果列表长度不同或为空,则肯定不存在相同的值。
2. 使用切片操作,去除两个列表的首尾元素,生成新的切片列表。
3. 创建一个空列表,用于存储相同值在原始列表中的索引。
4. 使用嵌套的for循环遍历第一个切片列表中的元素,并与第二个切片列表中的元素进行比较。
5. 如果找到相同的值,则将其在原始列表中的索引添加到结果列表中。
下面是一个示例代码,展示了如何实现上述步骤:
```python
def find_same_values_index(list1, list2):
# 检查两个列表的长度和非空性
if len(list1) != len(list2) or len(list1) == 0:
return []
# 去除首尾元素,生成切片列表
slice1 = list1[1:-1]
slice2 = list2[1:-1]
# 存储相同值在原始列表中的索引
result = []
# 遍历第一个切片列表中的元素,并与第二个切片列表中的元素进行比较
for i, value1 in enumerate(slice1):
for j, value2 in enumerate(slice2):
if value1 == value2:
# 获取相同值在原始列表中的索引
index1 = i + 1
index2 = j + 1
result.append((index1, index2))
return result
# 示例调用
list1 = [1, 2, 3, 4, 5]
list2 = [6, 7, 3, 9, 8]
result = find_same_values_index(list1, list2)
if result:
print("存在相同的值,索引分别为:")
for index1, index2 in result:
print(index1, "和", index2)
else:
print("不存在相同的值")
```
请注意,上述代码中的切片操作是基于列表的索引进行的,因此要确保列表中至少有3个元素。如果列表长度小于3,你可能需要根据具体情况进行判断和调整。此外,上述代码会返回所有找到的相同值的索引对,如果你只需要第一对相同值的索引,可以进行适当的修改。
阅读全文