เมื่อจำเป็นต้องแสดงการเกิดขึ้นที่ใกล้ที่สุดระหว่างสององค์ประกอบในรายการ จะมีการกำหนดวิธีการที่ใช้พารามิเตอร์สามตัว ใช้ตัวดำเนินการ "ไม่อยู่ใน" และความเข้าใจรายการเพื่อกำหนดผลลัพธ์
ด้านล่างนี้เป็นการสาธิตสิ่งเดียวกัน -
ตัวอย่าง
def nearest_occurence_list(my_list, x, y):
if x not in my_list or y not in my_list:
return -1
x_index = [index for index in range(len(my_list)) if my_list[index] == x]
y_index = my_list.index(y)
min_dist = 1000000
result = None
for element in x_index:
if abs(element - y_index) < min_dist:
result = element
min_dist = abs(element - y_index)
return result
my_list = [12, 24, 15, 17, 28, 26, 13, 28, 14, 12, 20, 19, 24, 29, 14]
print("The list is :")
print(my_list)
x = 14
print("The value of x is ")
print(x)
y = 26
print("The value of y is ")
print(y)
print("The result is :")
print(nearest_occurence_list(my_list, x, y)) ผลลัพธ์
The list is : [12, 24, 15, 17, 28, 26, 13, 28, 14, 12, 20, 19, 24, 29, 14] The value of x is 14 The value of y is 26 The result is : 8
คำอธิบาย
-
มีการกำหนดเมธอดชื่อ 'nearest_occurence_list' ที่รับพารามิเตอร์สามตัว
-
หากไม่มีพารามิเตอร์ที่สองหรือสามในพารามิเตอร์แรก จะส่งกลับ -1
-
ความเข้าใจรายการใช้เพื่อวนซ้ำองค์ประกอบและรับความยาวของรายการหากรายการมีพารามิเตอร์ตัวแรก
-
สิ่งนี้ถูกกำหนดให้กับตัวแปรหนึ่ง
-
ดัชนีของพารามิเตอร์ที่สองถูกกำหนดแล้ว
-
องค์ประกอบภายในตัวแปรที่หนึ่งจะถูกทำซ้ำ และความแตกต่างระหว่างองค์ประกอบและดัชนีของ y จะถูกเปรียบเทียบกับค่าเฉพาะ
-
ขึ้นอยู่กับสิ่งนี้ ผลลัพธ์จะถูกส่งคืน
-
นอกเมธอด รายการถูกกำหนดและแสดงบนคอนโซล
-
ค่าสำหรับ x และ y ถูกกำหนดและแสดงบนคอนโซล
-
วิธีการนี้ถูกเรียกโดยการส่งผ่านพารามิเตอร์ที่จำเป็น
-
นี่คือเอาต์พุตที่แสดงบนคอนโซล