【问题标题】:flatten python tuple - django field options optgroups扁平化 python 元组 - django 字段选项 optgroups
【发布时间】:2018-11-18 18:13:30
【问题描述】:

我一直在寻找一种方法来扁平化 django 中的字段选项,该字段的结构为 optgroup 嵌套元组:

CHOICES = (
  ('', (
        ('value1', 'label1'),
        ('value2', 'label2'),
      )
  ),
  ('Group2', (
        ('value3', 'label3'),
        ('value4', 'label4'),
     )
  ),
)

我想要实现的是一个仅包含值 ['value1', 'value2', 'value3', 'value4'] 的列表。

我尝试过 itertools 链、zip 和 sum,但我无法摆脱分组标签,即空字符串 '' 和 'Group2'。有什么想法吗?

谢谢

【问题讨论】:

    标签: python django flatten optgroup


    【解决方案1】:

    您可以使用list comprehension 来执行此操作:

    [choice[0] for group in CHOICES for choice in group[1]] 
    

    【讨论】:

    • 我试过了,但是元组和组的长度是任意的。不过还是谢谢你的回答。
    【解决方案2】:

    对于任何感兴趣的人,以下内容都可以:

    [tuple[0] for tuple in [field].get_flatchoices(False)]
    

    【讨论】:

      猜你喜欢
      • 2013-04-06
      • 1970-01-01
      • 2020-12-04
      • 1970-01-01
      • 2018-04-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多