如何拆分每个x元素的列表并将这些x元素添加到新列表中?

Tyl*_*ler 16 python indexing split loops list

我有一个包含多个整数和字符串的列表

['-200', ' 0', ' 200', ' 400', ' green', '0', '0', '200', '400', ' yellow', '200', '0', '200', '400', ' red']

我很难将每个列表分开5 elements并创建一个内部只有5个元素的新列表.

但是,我不想要3个不同的列表,我只想要一个在每次新的情况下5 elements都会改变的列表.

Ser*_*lis 31

你想要的东西:

composite_list = [my_list[x:x+5] for x in range(0, len(my_list),5)]

print (composite_list)
Run Code Online (Sandbox Code Playgroud)

输出:

[['-200', ' 0', ' 200', ' 400', ' green'], ['0', '0', '200', '400', ' yellow'], ['200', '0', '200', '400', ' red']]
Run Code Online (Sandbox Code Playgroud)

"新"5个元素是什么意思?

如果要附加到此列表,您可以执行以下操作:

composite_list.append(['200', '200', '200', '400', 'bluellow'])
Run Code Online (Sandbox Code Playgroud)


She*_*eng 6

你可以用一句话来做到这一点,比如

>>> import math
>>> s = ['-200', ' 0', ' 200', ' 400', ' green', '0', '0', '200', '400', ' yellow', '200', '0', '200', '400', ' red']
>>> [s[5*i:5*i+5] for i in range(0,math.ceil(len(s)/5))]
Run Code Online (Sandbox Code Playgroud)

那么输出应该是:

[['-200', ' 0', ' 200', ' 400', ' green'], ['0', '0', '200', '400', ' yellow'], ['200', '0', '200', '400', ' red']]
Run Code Online (Sandbox Code Playgroud)