+ 9
How can we move an element on a list in Python?
So say I have a list list = [1,2,3,4,5] how can I move say "2" so that I have list = [1,3,4,2,5] or list = [1,3,4,5,2] or anywhere I like with having the element still ordered? Is there a fast way so I have all the possibilites so that 2 is moved with the element still ordered? Thank you
9 Respostas
+ 12
Muhammad Hasan Ok then:
lst = [1, 2, 3, 4, 5]
print(lst)
lst.insert(2, lst.pop(1))
print(lst)
>>>
[1, 2, 3, 4, 5]
[1, 3, 2, 4, 5]
+ 9
You could also swap list elements with:
lst[i], lst[j] = lst[j], lst[i]
e.g.,
lst = [1, 2, 3, 4, 5]
print(lst)
lst[1], lst[2] = lst[2], lst[1]
print(lst)
>>>
[1, 2, 3, 4, 5]
[1, 3, 2, 4, 5]
+ 9
After learning about itertools and finding motivation I finally found a way to have all the possibility 😅
Thank you for helping me Kuba Siekierzyński
https://code.sololearn.com/cUh6113vl0tv/?ref=app
+ 6
First of all, the above is not a list, but a set, which is an unordered collection.
List is made with square brackets.
Then:
lst = [1, 2, 3, 4, 5]
print(lst)
lst.append(lst.pop(1))
print(lst)
>>>
[1, 2, 3, 4, 5]
[1, 3, 4, 5, 2]
+ 6
Muhammad Hasan If you want to have all possible permutations, just go:
from itertools import permutations
print(list(permutations(lst)))
And refer to the third lesson here:
https://www.sololearn.com/learn/JUMP_LINK__&&__Python__&&__JUMP_LINK/2466
+ 5
Kuba Siekierzyński Oopss...
I accidentally put brackects 😅
Hmm nice answer...
but I think that only works If I want to put it in the end...
I need it to be anywhere that I want..🤔
+ 5
David Ashton
Yeah, I've thought of that too, but I think it's not an ideal solution
It only works if I swap 2 with 3, if I swap 2 with 4 then it wouldn't be ordered as I want
+ 5
So to get all the possibilities do I have to do this manually .__. ?
Kuba Siekierzyński
+ 4
Thank you all, sorry for being such a newbie
I have learnt how to permutate and use itertools, but it's hard to implement on this, maybe I'll try learning more about itertools
Other answers are still needed