将使用条件和附加值构建的列表附加到列表列表

时间:2017-06-09 18:53:38

标签: list python-3.x csv iteration

我目前正在使用两个大型数据库csv文件。一个这样的csv,我们称之为X,完全由测试对象的数值数据组成。 a的列被安排为健康测量,如此(id,v1,v2,v3,v4)。我试图获取这些信息并创建一个列表列表,其中每个列表包含单个人的信息,即以这种方式:

@Component
public class ScheduledTasks  {

    private Logger logger = Logger.getLogger(ScheduledTasks.class);

    @Value("${jobs.schedule.istime}")
    private boolean imagesPurgeJobEnable;

    @Override
    @Transactional(readOnly=true)
    @Scheduled(cron = "${jobs.schedule.istime}")
    public void execute() {

         //Do something
        //can use DAO or other autowired beans here
        if(imagesPurgeJobEnable){

           // Do your conditional job here...

        }
   }
}

(让我知道我是否应该编辑格式:我想将X作为列提供以便于阅读。在列表列表中我刚用完房间,所以listolists = [a,b,c],其中a是第一行,b是第二行,c是第三行 我已经尝试了一些这样的效果,但我最大的问题是我不确定在哪里创建具有匹配数据的实体列表,然后将其附加到“主列表”。

X=[['1','a','b','c','d'],
   ['1','e','f','g','h'],
   ['2','i','j','k','l'],
   ['3','m','n','o','p']]

listoflists=[ [['1','a','b','c','d'],['1','e','f','g','h']],  #first row
              ['2','i','j','k','l'],   #second
              ['3','m','n','o','p'] ]  #third

感谢所有帮助。感谢。

1 个答案:

答案 0 :(得分:1)

这是:

X =[
    ['1','a','b','c','d'],
    ['1','e','f','g','h'],
    ['2','i','j','k','l'],
    ['3','m','n','o','p'],
    ]

numbers = {x[0] for x in X}

output = []

for num in sorted(numbers):
    new_list = [sub_list for sub_list in X if sub_list[0] == num]
    output.append(new_list)

print(output)

...


[[['1', 'a', 'b', 'c', 'd'], ['1', 'e', 'f', 'g', 'h']],
 [['2', 'i', 'j', 'k', 'l']],
 [['3', 'm', 'n', 'o', 'p']]]

如果你需要第二个和第三个列表没有嵌套,就像第一个让我知道

编辑 - 针对问题中指定的确切格式

X =[
    ['1','a','b','c','d'],
    ['1','e','f','g','h'],
    ['2','i','j','k','l'],
    ['3','m','n','o','p'],
    ]

numbers = {x[0] for x in X}

output = []

for num in sorted(numbers):
    new_list = [sub_list for sub_list in X if sub_list[0] == num]
    if len(new_list) > 1:
        output.append(new_list)
    else:
        output.append((new_list)[0])

print(output)