Python向lis添加多个列表

2024-05-08 04:46:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个函数,可以将前三列数据附加到一个新的空列表中。输出示例如下:

['red', 'blue', 'green', 'yellow', 'purple', 'black']

我想把这个列表的每两个元素都放在它自己的列表中

[['red', 'blue'], ['green', 'yellow'], ['purple', 'black']]

我该怎么做?谢谢。你知道吗

def selection_table(table):
    atts = [1,2,3]
    new_table = []
    for row in table:
        for i in range(len(new_atts)):
            new_table.append(row[atts[i]])
    return new_table

Tags: 数据函数in列表newfortablegreen
3条回答

简单的方法是使用zip:)

test=['red', 'blue', 'green', 'yellow', 'purple', 'black']
c=zip(test[0::2],test[1::2])
map(lambda x :list(x),c)
>>>>[['red', 'blue'], ['green', 'yellow'], ['purple', 'black']]

或者

test=['red', 'blue', 'green', 'yellow', 'purple', 'black']
map(lambda x :list(x),zip(test[0::2],test[1::2]))

你可以按照this的问题来做:

a = ['red', 'blue', 'green', 'yellow', 'purple', 'black']

def chunks(l, n):
    """ Yield successive n-sized chunks from l.
    """
    for i in range(0, len(l), n):
        yield l[i:i+n]

print(list(chunks(a, 2)))    

提供:

[['red', 'blue'], ['green', 'yellow'], ['purple', 'black']]
>>> my_list = ['red', 'blue', 'green', 'yellow', 'purple', 'black']
>>> result = (my_list[i:i+2] for i in range(0, len(my_list), 2))
>>> list(result)
[['red', 'blue'], ['green', 'yellow'], ['purple', 'black']]

相关问题 更多 >