I have list with different types of data (string, int, etc.). I need to create a new list with, for example, only int elements, and another list with only string elements. How to do it?
You can accomplish this with list comprehension:
integers = [elm for elm in data if isinstance(elm, int)]
data is the data. What the above does is create a new list, populate it with elements of
elm) that meet the condition after the
if, which is checking if element is instance of an
int. You can also use
integers = list(filter(lambda elm: isinstance(elm, int), data))
The above will filter out elements based on the passed lambda, which filters out all non-integers. You can then apply it to the strings too, using
isinstance(elm, str) to check if instance of string.