0

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?

Paul Viorel
  • 234
  • 1
  • 11

4 Answers4

2

yes there is, you can use list comprehension like:

usernames = [sm.username for sm in socialmedias]

aleksandarbos
  • 496
  • 4
  • 12
0

You could do

usernames = [sm.username for sm in socialmedias] 

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

LoLo2207
  • 103
  • 5
0

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.

Willy Lutz
  • 134
  • 1
  • 1
  • 9
0

Using a function.

list(map(lambda sm: sm.username, socialmedias))
0x0fba
  • 1,520
  • 1
  • 1
  • 11