We are given a list and a element K, our aim is to transform the given list into a dictionary where the specified element (Kth element) becomes the key and the rest of the elements form the value list. For example: if the given list is: [6, 5, 3, 2] and K = 1 then the output will be {5: [6, 3, 2]}.
Using a Loop
This method involves iterating through the list and selecting the Kth element as the dictionary key and the other elements are appended to a list thus forming the value for that key.
li = [5, 6, 3, 8, 9]
k = 3
# creating the dictionary with Kth element as key
res = {li[k]: []}
# iterating through the list to add non-Kth elements as values
for i in range(len(li)):
if i != k:
res[li[k]].append(li[i])
print("Records after conversion:", res)
Output
Records after conversion: {8: [5, 6, 3, 9]}
Using list slicing
In this method we use slicing to directly extract all elements except the Kth element and then assigns them as the value in the dictionary making it an efficient approach.
li = [5, 6, 3, 8, 9]
k = 3
# using slicing to create the dictionary
res = {li[k]: li[:k] + li[k+1:]}
print("After conversion:", res)
Output
After conversion: {8: [5, 6, 3, 9]}
Explanation:
Kthelement of the list (l[k]) is directly used as the dictionary key.- The values of dictionary are derived by concatenating two slices of the list:
l[:k](elements before theKthindex) andl[k+1:](elements after theKthindex).
Using Dictionary Comprehension
In this method we use dictionary comprehension to construct the dictionary, the list is iterated over using enumerate() to access both the index and value and a condition is applied to exclude the Kth element from the value list.
li = [5, 6, 3, 8, 9]
k = 3
# using dictionary comprehension to create the dictionary
res = {li[k]: [x for i, x in enumerate(li) if i != k]}
print(res)
Output
{8: [5, 6, 3, 9]}
Explanation:
- The key in the dictionary is taken from the
Kthelement (l[k]). - Dictionary comprehension iterates over the list and includes all elements except the
Kthone, usingenumerate()to get both the index and the value.
Using filter and lambda function
We use a lambda function to filter out the element at the Kth index and then filter() function is used to keep only the elements that are not equal to the element at index K. The filtered list is then used to create the dictionary.
li = [5, 6, 3, 8, 9]
k = 3
# using filter and lambda function to exclude the element at index K
res = {li[k]: list(filter(lambda x: x != li[k], li))}
print("After conversion : " + str(res))
Output
After conversion : {8: [5, 6, 3, 9]}
Explanation:
lambdafunction is used insidefilter()to check if each element in the list is not equal to the element at indexK.- result from
filter()is converted back to a list which is used as the value in the dictionary with theKthelement as the key.
Using set operations
In this method we leverage set operations to extract the Kth element as the key and the rest of the elements as values. A set is created with the Kth element and another set is formed with all the elements except the one at index K then we take the difference between the sets to identify the remaining values. Finally, we create a dictionary where the key is the Kth element, and the value is the remaining list of elements.
li = [5, 6, 3, 8, 9]
k = 3
# using set operations to extract the key and values
keys = {li[k]}
values = set(li) - keys
res = {keys.pop(): list(values)}
print("After conversion: ", res)
Output
After conversion: {8: [9, 3, 5, 6]}
Using the pop() method
In this method we use pop() method to remove the element at index K from the list and store it as the dictionary key. The remaining list is then used as the value in the dictionary. Here, he pop() method not only removes the element from the list but also returns it thereby making it easy to assign to the dictionary key.
li = [5, 6, 3, 8, 9]
k = 3
# popping the element at index K
key = li.pop(k)
# creating the dictionary
res = {key: li}
print("After conversion: ", res)
Output
After conversion: {8: [5, 6, 3, 9]}
Explanation: pop() method removes the element at the specified index K and stores it in the variable key and the remaining elements in the list are assigned as the value in the dictionary with key as the key.