在Python中将多个变量结果合并到一个列表中

亚历克斯

我有一个名为records的列表,其中包含records [1]中的mw值。然后if,我用四个语句测试这些mw值,然后根据mw的值更改输出结果,如下所示。

mw = records[1]
if mw <= 100:
  output1 =(records[1],"valueA", records[4], "moreItems")
if 100< mw <= 300:
  output2 =("records[1]","valueB", records[4], "moreItems")
if 300< mw <= 600:
 output3 =("records[1]","valueC", records[4], "moreItems")
if mw > 600:
  output4 =("records[1]","valueD", records[4] , "moreItems")

if语句背后的主要思想是,我需要基于mw值更改一些列表值。这意味着output1变量将与output2略有不同。

如何合并这四个输出?理想情况下,我想要输出1的所有结果,然后是2,然后是3,如下所示。

98.7,valueA,False,moreItems  #from output1
50,valueA,False,moreItems    #from output1
210,valueB,True,moreItems    #From output2
400,valueC,True,moreItems    #From output3
498,valueC,True,moreItems    #From output3
580,valueC,True,moreItems    #From output3
800,valueD,False,moreItems   #From output4
凯文·蔡斯(Kevin J.Chase)

我看不到只有4个变量如何获得所有输出。换句话说,使用大量带编号的“同级”变量只会让您头疼---您需要一个可以反复调用的函数。就像是:

def process_record(record):
    mw = record[1]
    if mw <= 100:
        output = (record[1], "valueA", record[4], "moreItems")
    elif 100 < mw <= 300:
        output = (record[1], "valueB", record[4], "moreItems")
    elif 300 < mw <= 600:
        output = (record[1], "valueC", record[4], "moreItems")
    elif 600 < mw:
        output = (record[1], "valueD", record[4], "moreItems")
    else:
        raise ValueError("Illegal record: %s" % repr(record))
    return output

这将返回分配给output1的相同元组output2,依此类推,但可以根据需要使用多次。(请注意,由于它一次只能处理一个记录,因此将其名称和参数更改为单数“ record”。并且将单独的if语句更改为elif带有默认大小写的系列语句。)

您的输出元组以数字开头...在Python元组中,它们自动按其第一个元素排序,然后按第二个元素排序,依此类推。因此,您可以使用内置sorted函数来生成所需的输出:

def main():
    records = [
      # You know how you're acquiring these records; I don't.
      ]
    processed_records = [process_record(record) for record in records]
    for record in sorted(processed_records):
        print(",".join(str(dat) for dat in record))
    return

如果在您的真实代码中,您没有幸运地将数字放在元组的开头,或者如果您的值类别字符串("valueA"依此类推)没有按字母顺序排列为数字,则您仍然可以使用sorted,但是您必须为其提供关键功能才能进行所需的排序。

键功能被到列表中的每个元素自动应用进行排序,将其转换成一些更容易的排序,往往一些简单的像一个整数或字符串。"valueA"如果您不关心数字顺序,则可以只返回-或-任意字符串。下面的示例对字符串,数字和其他所有内容进行排序,因为我无法确定其他字段是否有意义。

def processed_record_key(record):
    int_val, value_category, unknown_boolean, unknown_string = record
    return value_category, int_val, unknown_boolean, unknown_string

现在,您只需要使用它:

    for record in sorted(processed_records, key=processed_record_key):
        # Same as before...

查看Sorted HowTo了解更多排序技巧。

最后,我建议您考虑对数据记录使用namedtuple ---这将使您的元组(以及使用它们的代码)更具自描述性,并且更易于使用。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将多个ObservableList合并到一个列表中

来自分类Dev

foreach:如何在多个迭代中将两个矩阵合并到一个列表中?

来自分类Dev

在Python中将多个列表合并为一个列表

来自分类Dev

如何将多个构面结果合并到具有一个属性的对象列表中

来自分类Dev

在Python中将两个列表合并到另一个列表

来自分类Dev

在Groovy中将两个列表的内容交替合并到一个列表中

来自分类Dev

PSQL:将多个查询的结果合并/合并到一个表中

来自分类Dev

无法将两个linq结果合并到一个变量中

来自分类Dev

将多个列表列合并到R中的一个列表列中?

来自分类Dev

将两个并行任务的结果合并到一个列表中

来自分类Dev

在R中将一个列表中的矩阵合并到另一个列表中的矩阵

来自分类Dev

将多个表结果合并到php中的一个表中

来自分类Dev

如何从多个表中获取一列以合并到一个列表中?

来自分类Dev

将多个列表合并到流中的一个对象列表?

来自分类Dev

MySQL:将联接后的多个值合并到一个结果列中

来自分类Dev

MySQL:将联接后的多个值合并到一个结果列中

来自分类Dev

将多个结果集合并到一个表中

来自分类Dev

如何将一个SASS列表合并到多个选择器中

来自分类Dev

Django REST:将多个单字段JSON记录合并到一个列表中

来自分类Dev

将多个字典的值合并到一个列表中

来自分类Dev

如何使用Pandas在Python中将不同的列合并到一个表中

来自分类Dev

如何将包含字典的Python列表合并到一个最终列表中

来自分类Dev

Python将一个变量内的多个列表合并为一个列表

来自分类Dev

将多个查询合并到一个输出中

来自分类Dev

将多个值合并到一个新列中的一行 Pandas Python

来自分类Dev

将对象合并到一个列表中

来自分类Dev

将一张表中的多行合并到一个SQL查询结果集中的多个列中

来自分类Dev

在SQL中将多个结果行合并为一个

来自分类Dev

在SQL中将多个结果行合并为一个

Related 相关文章

  1. 1

    将多个ObservableList合并到一个列表中

  2. 2

    foreach:如何在多个迭代中将两个矩阵合并到一个列表中?

  3. 3

    在Python中将多个列表合并为一个列表

  4. 4

    如何将多个构面结果合并到具有一个属性的对象列表中

  5. 5

    在Python中将两个列表合并到另一个列表

  6. 6

    在Groovy中将两个列表的内容交替合并到一个列表中

  7. 7

    PSQL:将多个查询的结果合并/合并到一个表中

  8. 8

    无法将两个linq结果合并到一个变量中

  9. 9

    将多个列表列合并到R中的一个列表列中?

  10. 10

    将两个并行任务的结果合并到一个列表中

  11. 11

    在R中将一个列表中的矩阵合并到另一个列表中的矩阵

  12. 12

    将多个表结果合并到php中的一个表中

  13. 13

    如何从多个表中获取一列以合并到一个列表中?

  14. 14

    将多个列表合并到流中的一个对象列表?

  15. 15

    MySQL:将联接后的多个值合并到一个结果列中

  16. 16

    MySQL:将联接后的多个值合并到一个结果列中

  17. 17

    将多个结果集合并到一个表中

  18. 18

    如何将一个SASS列表合并到多个选择器中

  19. 19

    Django REST:将多个单字段JSON记录合并到一个列表中

  20. 20

    将多个字典的值合并到一个列表中

  21. 21

    如何使用Pandas在Python中将不同的列合并到一个表中

  22. 22

    如何将包含字典的Python列表合并到一个最终列表中

  23. 23

    Python将一个变量内的多个列表合并为一个列表

  24. 24

    将多个查询合并到一个输出中

  25. 25

    将多个值合并到一个新列中的一行 Pandas Python

  26. 26

    将对象合并到一个列表中

  27. 27

    将一张表中的多行合并到一个SQL查询结果集中的多个列中

  28. 28

    在SQL中将多个结果行合并为一个

  29. 29

    在SQL中将多个结果行合并为一个

热门标签

归档