在日常开发中,有些API接口会限制请求的元素个数,这时就需要把一个大列表分割为固定的小列表,再进行相关处理,本文搜集了几个简单的方法,分享出来供大家参考学习,下面来看看详细的介绍:
#1.分割大列表为三个元素的小列表,不够三个元素的亦当成一个列表输出
In [17]: lst
Out[17]: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
In [18]: for i in range(0,len(lst),3):
...: print lst[i:i+3]
[0, 1, 2]
[3, 4, 5]
[6, 7, 8]
#2.稍微改进下,用了个列表推导,结果都放到一个列表了
In [35]: lst
Out[35]: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
In [36]: b = [lst[i:i+3] for i in range(0,len(lst),3)]
In [37]: b
Out[37]: [[0, 1, 2], [3, 4, 5], [6, 7, 8], [9]]
In [38]:
#3.不太喜欢的lambda,猛一看不懂,再细看逻辑还是上面的逻辑
In [10]: f = lambda a:map(lambda b:a[b:b+3],range(0,len(a),3))
In [11]: lst
Out[11]: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
In [12]: f(lst)
Out[12]: [[0, 1, 2], [3, 4, 5], [6, 7, 8], [9]]
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。
前言在日常开发中,有些API接口会限制请求的元素个数,这时就需要把一个大列表分割为固定的小列表,再进行相关处理,本文搜集了几个简单的方法,分享出来供大家参考学习,下面来看看详细的介绍:方法示例#1.分割大列表为三个元素的小列表,不够三个元素的亦当成一个列表输出In [17]: lstOut[17]: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]In [18]: for i in r...
names=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]
n=3 #将
列表
每3个组成一个小
列表
,
for i in range(0, len(names), n):
name=names[i:i + n]
print(name)
上面的例子是正好是
分割
间隔的整数倍,
分割
完毕
但如果不是
分割
间隔的整数倍时,上面的代码能否奏效呢?
names=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]
n=3 #将
列表
每3个
对于字符串
分割
,
python
中自带函数:split(),但对于
分割
数字
列表
,目前我尚未找到已存在的有效
方法
,比如以若干个0
分割
的数字
列表
:
number_
list
= [3.2, 2.1, 3, 0, 0, 1, 2.8, 9.6, 4.7, 0, 6.1, 0, 0, 0, 7.5, 3.6, 0.0, 5, 3.3]
我想要将number_
list
分割
成[[3.2, 2.1, 3], [1,...
在
Python
中,使用多线程可以加速一些计算密集型的任务,例如对于一个需要遍历大量数据的for循环,可以将其
拆分
成多个线程并行处理,从而提高程序的执行效率。
下面是一个使用
Python
多线程加速for循环的
示例
代码:
```
python
import threading
def process_data(data):
# 处理数据的函数
def process_data_thread(data_
list
):
threads = [] # 存储线程
列表
for data in data_
list
:
thread = threading.Thread(target=process_data, args=(data,))
thread.start()
threads.append(thread)
# 等待所有线程执行完毕
for thread in threads:
thread.join()
if __name__ == '__main__':
data_
list
= [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] # 数据
列表
process_data_thread(data_
list
)
在上面的代码中,我们定义了一个`process_data()`函数来处理数据,然后定义了一个`process_data_thread()`函数来创建多个线程并行处理数据。`process_data_thread()`函数接收一个数据
列表
作为参数,并将其
拆分
成多个线程来处理。
在循环过程中,我们使用`threading.Thread()`函数创建一个新线程,并将`process_data()`函数作为目标函数来执行。我们使用`thread.start()`
方法
来启动线程,并将线程对象添加到线程
列表
中。最后,我们使用`thread.join()`
方法
来等待所有线程执行完毕。
需要注意的是,在多线程处理数据时,需要确保线程之间的数据不会相互干扰。可以使用线程锁或者队列来实现线程间的安全数据传递。