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)
@gagankrpandit
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']]

@Linuszand
Copy link

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 number.isnumeric()]
print(result)

@kliment-radoev
Copy link

state = 'In 1984 there were 13 instances of a protest with over 1000 people attending'
st_list = [word for word in state.split() if word.isdigit()]
print(st_list)

@saugat-rai
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)

@0xb1b1
Copy link

0xb1b1 commented May 23, 2023

import re

[i for i in "In 1984 there were 13 instances of a protest with over 1000 people attending".split() if re.match("[0-9]", i)]

@diaanengyn
Copy link

str2 = "In 1984 there were 13 instances of a protest with over 1000 people attending"

only_nums = [ x for x in str2.split() if x.isdigit() ]

print( only_nums )

@rezaatb
Copy link

rezaatb commented Jul 19, 2023

sen = "In 1984 there were 13 instances of a protest with over 1000 people attending"
nums = [i for i in sen.split() if i.isdigit()]
print(nums)

@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