Python Forum

Full Version: List comprehension used differently
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Hello,

I saw on GitHub this line of code:

word_list = [letter if letter in used_letters else '-' for letter in word]
But I have never seen list comprehensions used in this way and don´t understand it really.

Can someone help me and show how this line of code would be written if it wouldn´t be in
a list comprehension

Thanks
It's quite simple to understand really:

- Go over each letter in word
- If letter is in used_letters, put it inside the new list
- Otherwise, put a "-" inside the new list.

Does it make it easier to read if you abstract the if and else into a function? That is, something like

def character(letter):
  if letter in used_letters:
    letter
  else:
    "-"

word_list = [character(letter) for letter in word]
Here it is written in various ways
word_list = [letter if letter in used_letters else '-' for letter in word]
word_list = []
for letter in word:
    word_list.append(letter if letter in used_letters else '-')
word_list = []
for letter in word:
    if letter in used_letters:
       word_list.append(letter)
    else:
        word_list.append("-")
Thanks, @Yoriz!
Thanks a lot @ndc85430