List切分

       /**

* 切分List

* @param lists 切分后每个List大小限制

* @param limit

* @return List<List<String>>

*/

public List<List<String>> disperseList(List<String> lists, int limit) {

if (lists == null) {

return null;

}

 

int size = lists.size();

ArrayList<List<String>> al = new ArrayList<List<String>>();

 

int end = 0;

for (int i = 0; i < size; i = i + limit) {

end = i + limit;

 

if (end > size) {

end = size;

}

 

List<String> list = lists.subList(i, end);

al.add(list);

}

 

return al;

}

<think> 我们之前讨论了如何获取列表中某个值的索引,现在用户转向了列表切分(slicing)的问题。用户明确表示:“我想查询列表(list切分的方法 请问Python中list切分的方法”。因此,我们需要详细解释Python中列表切分的各种方法。 列表切分(slicing)是Python中用于从列表中提取子集的操作。基本语法为:`list[start:stop:step]`。 其中: - start:起始索引(包含),默认为0。 - stop:结束索引(不包含),默认为列表长度。 - step:步长,默认为1。 我们将介绍多种切分场景,包括基本切分、负索引切分、步长切分以及切分的复制和修改等。 注意:切分操作返回一个新列表(浅拷贝),不会改变原列表(除非用于赋值修改原列表的某些部分)。 下面将分步骤详细说明。 ### 1. 基本切分(提取连续子列表) 语法:`list[start:stop]` - 从索引`start`开始(包含)到索引`stop`结束(不包含)。 - 如果省略`start`,则默认从0开始。 - 如果省略`stop`,则默认到列表末尾(包含最后一个元素)。 - 如果同时省略`start`和`stop`,则返回整个列表的拷贝。 示例: ```python my_list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] # 提取索引2到5(不包含5)的元素 print(my_list[2:5]) # 输出: [2, 3, 4] # 从开始到索引5(不包含5) print(my_list[:5]) # 输出: [0, 1, 2, 3, 4] # 从索引5到末尾 print(my_list[5:]) # 输出: [5, 6, 7, 8, 9] # 整个列表的拷贝 print(my_list[:]) # 输出: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] ``` ### 2. 负索引切分切分中,可以使用负索引表示从列表末尾开始计算的位置(例如,-1表示最后一个元素,-2表示倒数第二个,依此类推)。 ```python # 使用负索引 print(my_list[-3:]) # 提取最后三个元素: [7, 8, 9] print(my_list[2:-2]) # 从索引2到倒数第2个(不包含-2): [2, 3, 4, 5, 6, 7] ``` ### 3. 步长(step)切分 步长用于指定提取元素时的间隔。默认步长为1(连续提取)。可以指定任意非零整数作为步长(负步长表示反向提取)。 ```python # 步长为2 print(my_list[::2]) # 从开始到结束,每隔一个取一个: [0, 2, 4, 6, 8] print(my_list[1::2]) # 从索引1开始每隔一个取一个: [1, 3, 5, 7, 9] # 使用负步长(可以实现列表反转) print(my_list[::-1]) # 反转列表: [9, 8, 7, 6, 5, 4, 3, 2, 1, 0] print(my_list[::-2]) # 反向每隔一个取一个: [9, 7, 5, 3, 1] # 结合起始和结束的负步长切分 print(my_list[5:2:-1]) # 从索引5到索引2(不包含2),反向提取: [5, 4, 3] ``` ### 4. 切分赋值(修改原列表) 切分操作不仅可以提取子列表,还可以用于修改原列表的某一段。通过切分赋值,可以替换、插入或删除元素。 ```python # 修改连续子列表 my_list[2:5] = [20, 30, 40] # 替换索引2到5(不包含5)的元素 print(my_list) # 输出: [0, 1, 20, 30, 40, 5, 6, 7, 8, 9] # 删除子列表(赋值为空列表) my_list[2:5] = [] print(my_list) # 输出: [0, 1, 5, 6, 7, 8, 9](注意:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值