Python | Indices of numbers greater than K
Last Updated :
01 May, 2023
Many times we might have problem in which we need to find indices rather than the actual numbers and more often, the result is conditioned. First approach coming to mind can be a simple index function and get indices greater than particular number, but this approach fails in case of duplicate numbers. Let's discuss certain ways in which this problem can be successfully solved.
Method #1 : Using loop This problem can easily be solved using loop with a brute force approach in which we can just check for the index as we iterate and append it in a new list as we proceed forward.
Python3
# Python3 code to demonstrate
# index of matching element using loop
# initializing list
test_list = [12, 10, 18, 15, 8, 18]
# printing original list
print("The original list : " + str(test_list))
# using loop
# index of matching element
res = []
for idx in range(0, len(test_list)) :
if test_list[idx] > 10:
res.append(idx)
# print result
print("The list of indices greater than 10 : " + str(res))
Output : The original list : [12, 10, 18, 15, 8, 18]
The list of indices greater than 10 : [0, 2, 3, 5]
Time Complexity: O(n), where n is the length of the input list as we are iterating through the list.
Space Complexity: O(k), where k is the number of elements greater than 10 in the input list.
Method #2 : Using list comprehension + enumerate() The combination of these two function can also perform this particular task efficiently and in one line. The enumerate function is used to get element and its index simultaneously.
Python3
# Python3 code to demonstrate
# index of matching element
# using list comprehension + enumerate()
# initializing list
test_list = [12, 10, 18, 15, 8, 18]
# printing original list
print("The original list : " + str(test_list))
# using list comprehension + enumerate()
# index of matching element
res = [idx for idx, val in enumerate(test_list) if val > 10]
# print result
print("The list of indices greater than 10 : " + str(res))
Output : The original list : [12, 10, 18, 15, 8, 18]
The list of indices greater than 10 : [0, 2, 3, 5]
Method #3 : Using filter + lambda
One approach to finding the indices of numbers greater than a certain value K in a list is to use the filter() function and a lambda function.
The filter() function takes a function and an iterable as arguments, and returns an iterator that generates the elements of the iterable for which the function returns True. The lambda function is used to define a small anonymous function that returns a boolean value indicating whether an element is greater than K.
Here is an example of how this can be implemented:
Python3
# initializing list
test_list = [12, 10, 18, 15, 8, 18]
# printing original list
print("The original list:", test_list)
# using filter() and lambda
# indices of numbers greater than 10
indices = list(filter(lambda x: test_list[x] > 10, range(len(test_list))))
# print result
print("The indices of numbers greater than 10:", indices)
#This code is contributed by Edula Vinay Kumar Reddy
OutputThe original list: [12, 10, 18, 15, 8, 18]
The indices of numbers greater than 10: [0, 2, 3, 5]
The time complexity of this approach is O(n), where n is the length of the test_list, because the filter() function iterates over the elements of the list once.
The space complexity is also O(n), because the indices list is created and grows by one element for each iteration of the filter() function.
Method 4: Using the NumPy library.
Step-by-step appraoch:
- Import the NumPy library.
- Convert the given list to a NumPy array using the np.array() function.
- Use the np.where() function to find the indices of numbers greater than 10 in the NumPy array.
- Convert the resulting tuple of indices to a list using the tolist() method.
- Print the final list of indices.
Python3
# importing numpy library
import numpy as np
# initializing list
test_list = [12, 10, 18, 15, 8, 18]
# printing original list
print("The original list:", test_list)
# using numpy and np.where()
# indices of numbers greater than 10
indices = np.where(np.array(test_list) > 10)[0].tolist()
# print result
print("The indices of numbers greater than 10:", indices)
OUTPUT :
The original list: [12, 10, 18, 15, 8, 18]
The indices of numbers greater than 10: [0, 2, 3, 5]
Time complexity: O(n), where n is the length of the given list.
Auxiliary space: O(n), as we are creating a NumPy array of size n.
Similar Reads
Python Tutorial - Learn Python Programming Language Python is one of the most popular programming languages. Itâs simple to use, packed with features and supported by a wide range of libraries and frameworks. Its clean syntax makes it beginner-friendly. It'sA high-level language, used in web development, data science, automation, AI and more.Known fo
10 min read
Python Interview Questions and Answers Python is the most used language in top companies such as Intel, IBM, NASA, Pixar, Netflix, Facebook, JP Morgan Chase, Spotify and many more because of its simplicity and powerful libraries. To crack their Online Assessment and Interview Rounds as a Python developer, we need to master important Pyth
15+ min read
Python OOPs Concepts Object Oriented Programming is a fundamental concept in Python, empowering developers to build modular, maintainable, and scalable applications. By understanding the core OOP principles (classes, objects, inheritance, encapsulation, polymorphism, and abstraction), programmers can leverage the full p
11 min read
Python Projects - Beginner to Advanced Python is one of the most popular programming languages due to its simplicity, versatility, and supportive community. Whether youâre a beginner eager to learn the basics or an experienced programmer looking to challenge your skills, there are countless Python projects to help you grow.Hereâs a list
10 min read
Python Exercise with Practice Questions and Solutions Python Exercise for Beginner: Practice makes perfect in everything, and this is especially true when learning Python. If you're a beginner, regularly practicing Python exercises will build your confidence and sharpen your skills. To help you improve, try these Python exercises with solutions to test
9 min read
Python Programs Practice with Python program examples is always a good choice to scale up your logical understanding and programming skills and this article will provide you with the best sets of Python code examples.The below Python section contains a wide collection of Python programming examples. These Python co
11 min read
Python Introduction Python was created by Guido van Rossum in 1991 and further developed by the Python Software Foundation. It was designed with focus on code readability and its syntax allows us to express concepts in fewer lines of code.Key Features of PythonPythonâs simple and readable syntax makes it beginner-frien
3 min read
Python Data Types Python Data types are the classification or categorization of data items. It represents the kind of value that tells what operations can be performed on a particular data. Since everything is an object in Python programming, Python data types are classes and variables are instances (objects) of thes
9 min read
Input and Output in Python Understanding input and output operations is fundamental to Python programming. With the print() function, we can display output in various formats, while the input() function enables interaction with users by gathering input during program execution. Taking input in PythonPython input() function is
8 min read
Enumerate() in Python enumerate() function adds a counter to each item in a list or other iterable. It turns the iterable into something we can loop through, where each item comes with its number (starting from 0 by default). We can also turn it into a list of (number, item) pairs using list().Let's look at a simple exam
3 min read