将一个列表中每个元素和包含其元素在内的后面10个元素组成多个新的列表,新列表的长度保持一致,不足11个元素的,用输入列表中的元素添加进去
时间: 2023-12-14 14:37:08 浏览: 7
你可以使用列表推导式来实现这个操作。代码如下:
```python
original_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]
new_lists = [[original_list[i+j] if i+j<len(original_list) else original_list[i+j-len(original_list)] for j in range(11)] for i in range(len(original_list))]
print(new_lists)
```
输出结果为:
```
[[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11], [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13], [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 1], [5, 6, 7, 8, 9, 10, 11, 12, 13, 1, 2], [6, 7, 8, 9, 10, 11, 12, 13, 1, 2, 3], [7, 8, 9, 10, 11, 12, 13, 1, 2, 3, 4], [8, 9, 10, 11, 12, 13, 1, 2, 3, 4, 5], [9, 10, 11, 12, 13, 1, 2, 3, 4, 5, 6], [10, 11, 12, 13, 1, 2, 3, 4, 5, 6, 7], [11, 12, 13, 1, 2, 3, 4, 5, 6, 7, 8], [12, 13, 1, 2, 3, 4, 5, 6, 7, 8, 9], [13, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]]
```
在这个代码中,我们使用了两个嵌套的列表推导式。外层循环遍历输入列表中每个元素,内层循环遍历该元素及其后面10个元素。我们使用了条件表达式来判断索引是否超出了原始列表的范围,并使用了取模运算来将超出范围的索引转换为合法的索引。最终返回的是一个包含多个新列表的列表。