Is it the best way to create an array from a list of objects?

Question:

I have a list of objects stored in socialmedias variable. One parameter of SocialMedia class is called username. I want to create an array with all usernames from that list of objects socialmedias and I want to be sure I use the best way.

socialmedias = [obj1, obj2, obj3, ..., objN]
usernames = []

for sm in socialmedias:
    usernames.append(sm.username)
print(usernames)
>> [username1, username2, username3, ..., usernameN]

Is there any other way to do it in less line of codes I used above?

Asked By: Paul Viorel

||

Answers:

yes there is, you can use list comprehension like:

usernames = [sm.username for sm in socialmedias]

Answered By: aleksandarbos

You could do

usernames = [sm.username for sm in socialmedias] 

From: Extract list of attributes from list of objects in python

Answered By: LoLo2207

By memory I would say by using list comprehension:

socialmedias = [obj1, obj2, obj3, ..., objN]
usernames = [sm.username for sm in socialmedias]

print(usernames)

It should do the work.

Answered By: Willy Lutz

Using a function.

list(map(lambda sm: sm.username, socialmedias))
Answered By: 0x0fba
Categories: questions Tags: , ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.