1
import networkx as nx
import string
import random


females = list(string.ascii_lowercase)
males = list(string.ascii_uppercase)

class User_():
    def __init__(self, id_):
        self.id_ = id_
        self.G = nx.DiGraph()
        seed = random.randint(0,26)

        frnd_User_ = []
        for i in range(0, seed):
            frnd_User_.append(males[random.randint(0,25)])
            frnd_User_.append(females[random.randint(0,25)])
        self.frnd_User_ = frnd_User_

        edge_User_ = []
        for i in range(0, len(frnd_User_)):
            edge_User_.append((self.id_,frnd_User_[i]))
        self.edge_User_ = edge_User_

        self.G.add_edges_from(edge_User_)

For this given code defining User_(), I'd like to generate User_ class for each letters in the list males. For example, I'd like to do following task using for loop:

A = User_('A')

B = User_('B')

...

Z = User_('Z')

I'd tried follwoing codes but get returned with the error :

for i in range(0, 25):
    males[i] = exec("%s = %d" % (males[i],User_(males[i])))

TypeError                                 Traceback (most recent call last)
<ipython-input-24-d6ab5c2813a4> in <module>()
      1 for i in range(0, 25):
----> 2     males[i] = exec("%s = %d" % (males[i],User_(males[i])))

TypeError: %d format: a number is required, not User_

Any advice to proceed?

snapper
  • 997
  • 1
  • 12
  • 15

0 Answers0