Python Forum
reverse list, incl. nested list
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
Reply
#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?
If you can't explain it to a six year old, you don't understand it yourself, Albert Einstein
How to Ask Questions The Smart Way: link and another link
Create MCV example
Debug small programs

Reply
#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.
Reply
#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
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  No matter what I do I get back "List indices must be integers or slices, not list" Radical 4 1,091 Sep-24-2023, 05:03 AM
Last Post: deanhystad
  Delete strings from a list to create a new only number list Dvdscot 8 1,466 May-01-2023, 09:06 PM
Last Post: deanhystad
  List all possibilities of a nested-list by flattened lists sparkt 1 878 Feb-23-2023, 02:21 PM
Last Post: sparkt
  Сheck if an element from a list is in another list that contains a namedtuple elnk 8 1,714 Oct-26-2022, 04:03 PM
Last Post: deanhystad
Question Keyword to build list from list of objects? pfdjhfuys 3 1,499 Aug-06-2022, 11:39 PM
Last Post: Pedroski55
  Split a number to list and list sum must be number sunny9495 5 2,197 Apr-28-2022, 09:32 AM
Last Post: Dexty
  Updating nested dict list keys tbaror 2 1,243 Feb-09-2022, 09:37 AM
Last Post: tbaror
  Python Program to Find the Total Sum of a Nested List vlearner 8 4,785 Jan-23-2022, 07:20 PM
Last Post: menator01
  How to check if a list is in another list finndude 4 1,793 Jan-17-2022, 05:04 PM
Last Post: bowlofred
  Different out when using conda list and pip list Led_Zeppelin 1 3,966 Jan-14-2022, 09:30 PM
Last Post: snippsat

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020