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