Skip to content

Instantly share code, notes, and snippets.

@bbookman
Created December 26, 2018 22:18
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save bbookman/ad4a1d6e9e9c752bf5ec899de0ca82dc to your computer and use it in GitHub Desktop.
Save bbookman/ad4a1d6e9e9c752bf5ec899de0ca82dc to your computer and use it in GitHub Desktop.
Python List Comprehension: Find numbers in sentence
'''
Get only the numbers in a sentence like 'In 1984 there were 13 instances of a protest with over 1000 people attending'. Result is a list of numbers like [3,4,5]
'''
sentence = 'In 1984 there were 13 instances of a protest with over 1000 people attending'
words = sentence.split()
result = [number for number in words if not number.isalpha() ]
print(result)
@LazyCiao
Copy link

LazyCiao commented Oct 1, 2023

import re

sentence = 'In 1984 there were 13 instances of a protest with over 1000 people attending'
w_in_sentence = sentence.split()

pattern = r'[0-9]'

print([n for n in sentence if re.match(pattern, n)])

@gda1335
Copy link

gda1335 commented Oct 2, 2023

[j for j in sentence.split() if j.isdigit()]

@Yousseflayechi
Copy link

string = 'In 1984 there were 13 instances of a protest with over 1000 people attending'

li = [i for i in string if i.isdigit()]
print(li)

s = filter(lambda x : x.isdigit(),string)
print(list(s))

@Yousseflayechi
Copy link

import re

string = 'In 1984 there were 13 instances of a protest with over 1000 people attending'

print(re.findall(r'[0-9]',string))

@ashkanhasani
Copy link

sentence = 'In 1984 there were 13 instances of a protest with over 1000 people attending' [int(letter) for letter in sentence if letter in ['1','2','3','4','5','6','7','8','9','0']]

Unfortunately, it does not work, because the question is not about digits

@ashkanhasani
Copy link

sentence = 'In 1984 there were 13 instances of a protest with over 1000 people attending'

numbers = [ num for num in sentence if num in [ str(x) for x in range(0,10)]

print(numbers)

your code will print digits, it's not question goal

@Kronekuto507
Copy link

string = "In 1984 there were 13 instances of a protest with over 13 people attending".split()
print(string)

list_a = [a for a in string if a[0] in ("1","2","3","4","5","6","7","8","9","0") ]
print(list_a)

@Amine-Fadssi
Copy link

Amine-Fadssi commented Jan 11, 2024

# Get only the numbers in a sentence
sentence = 'In 1984 there were 13 instances of a protest with over 1000 people attending'
my_list = [item for item in sentence if item.isnumeric()]
print(my_list)

@AkhonaDlamini
Copy link

sentence = 'In 1984 there were 13 instances of a protest with over 1000 people attending'
#If we were about to return one integer at a time like [1, 9, 8, 4, 1, 3, 1, 0, 0, 0] rather than 1984, 13, 1000 we would do it like this:

nums = [number for number in sentence if number.isdigit() == True]
print(nums)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment