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

2024-06-01 03:39:54 发布

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

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

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

我很难将每个列表5 elements分开,并且创建一个只有5个元素的新列表。

但是,我不想要3个不同的列表,我只想要一个每次新的5 elements经过时都会改变的列表。


Tags: 字符串元素列表整数greenredelementsyellow
3条回答

你可以用一句话

>>> 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))]

那么输出应该是:

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

我觉得您必须创建一个新列表,但如果我理解正确,您需要一个嵌套列表,每个子列表中有5个元素。

您可以尝试以下操作:

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

new = []
for i in range(0, len(l), 5):
    new.append(l[i : i+5])

这将逐步完成第一个列表“l”,并将5个元素组合成new中的子列表。输出:

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

希望这有帮助

你想要这样的东西:

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

print (composite_list)

输出:

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

你所说的“新”五行是什么意思?

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

composite_list.append(['200', '200', '200', '400', 'bluellow'])

相关问题 更多 >