python中的列表格式

python中的列表格式,python,Python,我需要在列表中列出3项 陈述..例如(1,2) 行动…如西部 成本…5 list=[(状态、操作、成本),(状态、操作、成本)…] 我怎样才能把它做成一个列表。对于一个特定的州,行动和成本是存在的。此外,如果我只需要列表中的状态,我应该能够从列表中提取它。同样的事情也适用于操作。我不确定我是否理解您问题的第一部分(“列表的形式”)。您可以按照所述的形式构造元组列表: mylist = [(1, 'west', 5), (1, 'east', 3), (2, 'west', 6)] # add

我需要在列表中列出3项

  • 陈述..例如(1,2)
  • 行动…如西部
  • 成本…5
  • list=[(状态、操作、成本),(状态、操作、成本)…]


    我怎样才能把它做成一个列表。对于一个特定的州,行动和成本是存在的。此外,如果我只需要列表中的状态,我应该能够从列表中提取它。同样的事情也适用于操作。

    我不确定我是否理解您问题的第一部分(“列表的形式”)。您可以按照所述的形式构造元组列表:

     mylist = [(1, 'west', 5), (1, 'east', 3), (2, 'west', 6)]
     # add another tuple 
     mylist.append((2, 'east', 7))
    
    要仅提取状态或动作(即每个元组中的第一项或第二项),可以使用列表理解:

    states = [item[0] for item in mylist]
    actions = [item[1] for item in mylist]
    

    上面列出的代码是一个元组列表,与您的要求非常匹配

    从上面的示例中,列表[0][0]返回第一个元组的状态,列表[0][1]返回操作,列表[0][2]返回成本


    您也可以使用类似(状态、操作、成本)=list[i]的内容提取值。

    您的措辞相当模糊。现在,您有一个元组列表(命名为
    列表
    ,非常糟糕,,它从该范围的其余部分剥夺了对内置名称的使用--不要将内置名称重新用作您自己的标识符…如果您想不出更有意义和帮助的名称,请将它们命名为
    列表
    mylist
    ). 如果需要列表列表,请输入代码:

    alist = [[state, action, cost], [state, action, cost], ...]
    
    如果要转换列表列表中的元组列表

    alist = [list(t) for t in alist]
    
    (请参见为什么您应该绝不篡夺内置标识符,例如
    列表
    ?!-)

    如果要将列表列表(或元组-列表)展平为单个列表

    aflatlist = [x for t in alist for x in t]
    
    要访问例如“仅访问状态”(第一项),例如列表中的第n项

    justthestate = alist[N][0]
    
    或者,如果你把它弄平了

    justhestate = aflatlist[N*3 + 0]
    
    (显然,
    +0
    是多余的,但它是用来告诉您如何支付成本的,成本将是
    +1
    ,等等)

    如果你想要一个包含所有州的列表

    allstates = [t[0] for t in alist]
    

    我相信你的意思可能与这十几种对你的奥术词汇的可能解释有所不同,但我现在已经没什么意思了;-)

    试试这个

    l = [('a',1,2),('b',3,4),('a',4,6), ('a',6,8)]
    
    state = [sl[0] for sl in l]
    or for more,
    state = [sl[0] for sl in l if 'a' in sl]
    

    你的问题到底是什么?你是天才..谢谢..你能帮我回答我之前发布的另一个问题吗..@Shilpa,基本礼仪要点1:你应该接受对你最有帮助的答案(通过点击旁边的复选标记形状图标)--要点2,只有当你获得15的声誉时才会起作用,你也应该对好的答案进行投票(你只能接受一个答案,但一旦你得到了那个代表,你可以随意投票,毫无疑问包括你接受的答案)。你会发现,除非你这样做,否则人们不会选择花那么多时间和精力回答你的问题。
    l = [('a',1,2),('b',3,4),('a',4,6), ('a',6,8)]
    
    state = [sl[0] for sl in l]
    or for more,
    state = [sl[0] for sl in l if 'a' in sl]