如何在 python 中创建列表?

How to create a list in python?

我想在 python 中创建一个名为“p_spaces”的列表,其中包含 20 个元素。每个元素都有一个 id 和两个其他属性。第一个属性是“初始状态”,将以 1/2 的概率为“空闲”或“占用”,第二个属性将是状态,最初为空。

我想动态创建它。例如“for i in range(19)”

有人可以帮助我吗?

您可以使用字典列表:

p_spaces = [ {"id": 0, "initial_state": "free", "state": None} ...]

附带说明一下,如果 initial_state 是二元选择,您不妨使用 0/1 或 True/False。

您可以动态创建它:

for i in range(20):
    p_spaces.append({"id":i,
                    "intial_state": "free", #or occupied
                    "state" : None})

要编辑任何元素:

p_spaces[item_number][attribute_name] = new_value

我没有足够的代表发表评论,但这是你的意思吗?

class Something:
   def __init__(self, id=0, initial_state = "free", state="empty"):
      self.id = id
      self.initial_state = initial_state
      self.state = state
   
   def SetState(self, state):
      self.state = state

   def SetId(self, id):
      self.id = id
   
   def GetId(self):
      return self.id

   def GetState(self):
      return self.state
 
   def GetInitialState(self):
      return self.initial_state
   


def PrintList(lst):
    for i in range(0, len(lst)):
        print(lst[i].GetId(), lst[i].GetInitialState(), lst[i].GetState())


n = 20
p_spaces = [None]*n
for i in range(0, n):
    sth_var = Something()
    p_spaces[i] = sth_var


PrintList(p_spaces)

initial_state = ['free', 'occupied']
state = ''
p_spaces = []
for i in range(20):
    p_spaces.append({i: [initial_state[i % 2], state]})
print(p_spaces)