• frezik@midwest.social
    link
    fedilink
    arrow-up
    30
    ·
    9 months ago

    People used to argue that Python was incredibly readable. Then I started seeing shit like this.

    • addie@feddit.uk
      link
      fedilink
      arrow-up
      14
      ·
      9 months ago

      I think that Python has a bit of a ‘Microsoft Word’ thing on the go. You know how your own docs are completely editable and print fine, but everyone else’s are a complete fucking disaster and pressing a single key will screw up the formatting of the whole document? Your own Python code is full of sensible idioms and pragmatic naming conventions, but everyone else’s was plainly written while on mushrooms.

  • riodoro1@lemmy.world
    link
    fedilink
    arrow-up
    21
    ·
    8 months ago

    Python has great list comprehension. Too bad it’s incomprehensible to humans.

    But seriously whoever writes those cool oneliners is a shitty programmer. Life is not code golf, fuck off with your smart ass.

    • Bonsoir@lemmy.ca
      link
      fedilink
      English
      arrow-up
      13
      ·
      edit-2
      8 months ago

      What would be the alternative? (assuming that you want to do the loop yourself)

      new_results = []
      for result in results:
          if result:
              new_results.append(result)
      results = new_results
      

      or else

      for result in results:
          if not result:
              results.remove(result)
      

      which doesn’t do the exact same thing.
      Honestly, this list comprehension is much faster to read and quite easy to understand.
      I think we could rename the “result” variable “x” or “res” and it would be less confusing though.

  • AngrilyEatingMuffins@kbin.social
    link
    fedilink
    arrow-up
    21
    ·
    9 months ago

    The image you’ve uploaded is a humorous take on a programming practice common among Python developers. It shows a list comprehension, which is a concise way to create lists in Python. The joke is that nobody prompted the Python programmers to use a complex or sophisticated feature, yet they are using it anyway, which implies that Python programmers tend to use list comprehensions frequently and perhaps even when they are not strictly necessary. List comprehensions are a popular feature in Python because they can make the code more readable and expressive, and this meme plays on the idea that Python programmers might be eager to use them at every opportunity.

  • mvirts@lemmy.world
    link
    fedilink
    arrow-up
    11
    ·
    9 months ago

    I’ve written this more times than I can remember 😹 who needs filter anyway? Gotta use up all this ram.

  • Nevoic@lemm.ee
    link
    fedilink
    arrow-up
    8
    ·
    edit-2
    8 months ago

    Python’s disdain for the industry standard is wild. Every other language made in the last 20 years has proper filtering that doesn’t require collecting the results back into a list after filtering like Java (granted it’s even more verbose in Java but that’s a low bar).

    If Python had modern lambdas and filter was written in an inclusion or parametric polymorphic way, then you could write:

    new_results = results.filter(x -> x)
    

    Many languages have shorthands to refer to variables too, so it wouldn’t be impossible to see:

    new_results = results.filter(_)
    

    Of course in actual Python you’d instead see:

    new_results = list(filter(lambda x: x, results))
    

    which is arguably worse than

    new_results = [x for x in results if x]
    
  • itslilith@lemmy.blahaj.zone
    link
    fedilink
    arrow-up
    8
    ·
    edit-2
    9 months ago

    It does! it takes a list (or other iterator) and filters out all values that are cast to boolean False. The same could be archived with

    results = list(filter(bool, results))