从后面的行添加一行特定值

时间:2018-03-21 16:15:44

标签: python python-3.x

我已经两天努力解决这个问题,但没有解决方案。

我的数据如下:

['DDD1', 'EEE1', 'AAA1', '1516988948227']
['DDD2', 'EEE2', 'AAA2', '1516988948076']
['DDD3', 'EEE3', 'AAA3', '1516990485713']
['DDD4', 'EEE4', 'AAA4', '1516990487782']

我需要的输出是:

['DDD1', 'EEE1', 'AAA1', '1516988948227','1516988948076']
['DDD2', 'EEE2', 'AAA2', '1516988948076','1516990485713']
['DDD3', 'EEE3', 'AAA3', '1516990485713','1516990487782']
['DDD4', 'EEE4', 'AAA4', '1516990487782', ' ']

换句话说,我需要在每一行中添加后面一行中数字的值。对于最后一行,我返回一个空格。

如果您有任何想法我可以如何解决问题,请帮忙。谢谢!

2 个答案:

答案 0 :(得分:0)

这是一种方式:

from itertools import zip_longest

lst = [['DDD1', 'EEE1', 'AAA1', '1516988948227'],
       ['DDD2', 'EEE2', 'AAA2', '1516988948076'],
       ['DDD3', 'EEE3', 'AAA3', '1516990485713'],
       ['DDD4', 'EEE4', 'AAA4', '1516990487782']]

res = [i + [j[-1]] for i, j in zip_longest(lst, lst[1:], fillvalue=[' ']*4)]

# [['DDD1', 'EEE1', 'AAA1', '1516988948227', '1516988948076'],
#  ['DDD2', 'EEE2', 'AAA2', '1516988948076', '1516990485713'],
#  ['DDD3', 'EEE3', 'AAA3', '1516990485713', '1516990487782'],
#  ['DDD4', 'EEE4', 'AAA4', '1516990487782', ' ']]

答案 1 :(得分:0)

我认为这是一个更具可读性的解决方案:

lst = [['DDD1', 'EEE1', 'AAA1', '1516988948227'],
       ['DDD2', 'EEE2', 'AAA2', '1516988948076'],
       ['DDD3', 'EEE3', 'AAA3', '1516990485713'],
       ['DDD4', 'EEE4', 'AAA4', '1516990487782']]

for i in range(len(lst)-1):
    lst[i].append(lst[i+1][-1])

lst[-1].append(' ')

print(lst)