Bottom Page

Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
 reverse list, incl. nested list
#1
I am trying to write a code which will generate a nested list and the main list in a reverse order:
1.my_third_list = ["WHAT","IS","THIS",["a nested list", 3, 8, 4.00]]

meaning, once i print the code, the output that i want to see is:
[4.0, 8, 3, 'a nested list'],'THIS', 'IS', 'WHAT']
the command that i wrote for this:
2.print(my_third_list[:[[3][::-1]]:-1])
but instead of the wanted output, i get this type error:
TypeError: slice indices must be integers or None or have an __index__ method

why does it happen? did i write the command wrong? how can I fix this?

thanks for helping

have a great day
buran wrote Apr-29-2019, 03:20 PM:
Changed thraed title to something meaningful
Please, use descriptive thread titles
Quote
#2
Maybe you need to refresh on slicing and indexing. This [:[[3][::-1]]:-1] could not possibly work. It's not even clear what you try to do.
in more broad sense - you need to iterate over element in the list and if it is a list - reverse also the element. Now ehere comes the question - elements of what type you will get and need to reverse. i.e. you don't reverse sting elements, would you reverse tuples for example?
Quote
#3
For general purpose solution recursion seems suitable. However, in case of one level deep and only lists then oneliner will do ("for every element in reverse ordered list give me reverse ordered element if element is list otherwise element itself"):

>>> lst = ["WHAT","IS","THIS",["a nested list", 3, 8, 4.00]]
>>> [list(reversed(el)) if isinstance(el, list) else el for el in reversed(lst)]
[[4.0, 8, 3, 'a nested list'], 'THIS', 'IS', 'WHAT']
I'm not 'in'-sane. Indeed, I am so far 'out' of sane that you appear a tiny blip on the distant coast of sanity. Bucky Katt, Get Fuzzy

Da Bishop: There's a dead bishop on the landing. I don't know who keeps bringing them in here. ....but society is to blame.
Quote
#4
(Apr-29-2019, 04:00 PM)perfringo Wrote: For general purpose solution recursion seems suitable. However, in case of one level deep and only lists then oneliner will do ("for every element in reverse ordered list give me reverse ordered element if element is list otherwise element itself"):

>>> lst = ["WHAT","IS","THIS",["a nested list", 3, 8, 4.00]]
>>> [list(reversed(el)) if isinstance(el, list) else el for el in reversed(lst)]
[[4.0, 8, 3, 'a nested list'], 'THIS', 'IS', 'WHAT']

Thanks pal
I think that will solve the problem
Quote

Top Page

Possibly Related Threads...
Thread Author Replies Views Last Post
  Nested Dictionary/List tonybrown3 5 264 May-08-2020, 01:27 AM
Last Post: tonybrown3
  Add items from one list to list of lists PUP280 5 499 May-05-2020, 03:47 PM
Last Post: PUP280
  while loop reading list in reverse Jerry51 1 90 Apr-24-2020, 12:44 PM
Last Post: deanhystad
  Help removing asterisk item in a nested list. bmcguire 3 177 Apr-06-2020, 02:35 PM
Last Post: snippsat
  appending list of list glennford49 2 211 Mar-29-2020, 09:33 AM
Last Post: ibreeden
  dot product of a list by a list in a dictionary stored as a value Fraher123 1 180 Mar-25-2020, 06:08 PM
Last Post: deanhystad
  Make nested system directories based on an unsorted list? koebi 0 148 Mar-25-2020, 01:14 PM
Last Post: koebi
  Creating new list based on exact regex match in original list interjectdirector 1 190 Mar-08-2020, 09:30 PM
Last Post: deanhystad
  create a list of object with a list of character studenthch 0 150 Feb-12-2020, 08:43 AM
Last Post: studenthch
  how to compare a list to a list of lists kevthew 1 239 Dec-22-2019, 11:43 AM
Last Post: ibreeden

Forum Jump:


Users browsing this thread: 1 Guest(s)