编写一个Python函数，该函数接受三个参数：一个列表、一个要查找的元素，以及一个函数（用于执行排序）。函数应该返回列表中要查找的元素的索引，如果该元素不存在于列表中，则返回-1。


def binary_search(arr, x, sort_func):
    arr = sort_func(arr)

    left = 0
    right = len(arr) - 1
    while left <= right:
        mid = (left + right) // 2
        if arr[mid] == x:
            return mid
        elif arr[mid] < x:
            left = mid + 1
        else:
            right = mid - 1
    return -1

arr = [2, 3, 4, 10, 40]
x = 10
print(f"要查找的元素{x}的索引是{binary_search(arr, x, sorted)}")
这是一个实现二分查找功能的Python函数，其中arr是列表，x是要查找的元素，sort_func是用于执行排序的函数。如果要查找的元素不存在于列表中，则返回-1。

```
def binary_search(arr, x, sort_func):
    arr = sort_func(arr)

    left = 0
    right = len(arr) - 1
    while left <= right:
        mid = (left + right) // 2
        if arr[mid] == x:
            return mid
        elif arr[mid] < x:
            left = mid + 1
        else:
            right = mid - 1
    return -1

arr = [2, 3, 4, 10, 40]
x = 10
print(f"要查找的元素{x}的索引是{binary_search(arr, x, sorted)}")
```