Python里for循环要遍历的数据很多很大怎么办?

liftword3周前 (12-19)技术文章19

#春日生活打卡季#

首先面对这个问题,对于初学者来说了解基础的数据结构是非常重要的。掌握了数据结构在去分析相应的程序执行效率,这才是学编程的第一步。



在《数据结构》这门学科中,栈、队列属于是逻辑结构,其他属于是存储结构,在我们日常生活或者工作中都会用到这几种数据结构,比如扑克牌的洗牌和发牌就是顺序堆栈的应用,学好《数据结构》这门课不仅仅可以提高知识的认知,还可以提高对某一事物的思考,提供更多的思维方式。

任何一门编程语言都要在《数据结构》的基础上进行开发语言设计。Python也是一样的,要搞明白Python如何处理大量的循环数据,就要明白Python有哪些数据结构以及如何使用它。



最难的事,就是遗忘简单的动作,把简单的事重复做到极致,就是量变到质变的过程。Python的学习也是一样的,知识很简单,但是长时间不用,不去思考,过个三年五载这些知识就会被忘记了,往往就是捡了玉米丢了芝麻,那么Python里for循环要遍历的数据很大如何处理呢?接下来,就让我们一起去了解每一个数据结构的语法特性吧。

String和Number

  • String
# 记录开始时间

sstart_time = time.time()

# 字符串

string = "01234579"

for s in string:

print(s)

# 记录结束时间

send_time = time.time()

# 计算并打印执行时间

sexecution_time = send_time - sstart_time

print(f"string executed in {sexecution_time:4f}s")

采用字符串的方式,for循环数据,通过下图



可以得知,字符串类型,十个字符的执行时间为0.000724s.

  • Number
# 记录开始时间

istart_time = time.time()

# number

for n in range(0,10):

print(n)

# 记录结束时间

iend_time = time.time()

# 计算并打印执行时间

iexecution_time = iend_time - istart_time

print(f"number executed in {iexecution_time:4f}s")

数值类型的方式,for循环数据,通过下图



可以得知,数值类型,从0-9十个数字的执行时间为0.000686s

可以看出整形占24个字节、字符串占49个字节

# 整型

print(sys.getsizeof(0)) # 在32位机器上通常是24个字节,64位机器上是28个字节

print(sys.getsizeof(""))


在处理整形数据的时候使用了range()函数返回的是一个可迭代对象(类型是对象),而不是列表类型, 所以打印的时候不会打印列表。是不是可以理解以后所有的数据都可以通过字符串类型来遍历数据呢?!字符串虽然使用方法简单,但是有它的不方便之处。如果相对简单的数据,可以采用字符串来使用,如果涉及到复杂的数据,字符串就没办法应对了,就需要转换成其他数据类型了,比如如下程序:

string = "0,1,2,3,4,5,7,8,9,10"

string_split = string.split(",") # 拆分成字符串列表

for s in string_split:

print(s)


面对复杂的数据类型,字符串就没办法处理,就需要转换成列表了。那么列表和元组我们如何看待呢?

列表和元组

  • 列表
import time

import sys

# 记录开始时间

lstart_time = time.time()

# 列表

lists = list(range(10))

for l in lists:

print(l)

# 记录结束时间

lend_time = time.time()

# 计算并打印执行时间

lexecution_time = lend_time - lstart_time

print(f"list executed in {lexecution_time:4f}s")

列表作为常用的数据类型,通过程序执行可以看出



列表类型,从0-9十个数字的执行时间为0.000987s

  • 元组
# 记录开始时间

tstart_time = time.time()

# 元组

tuple = (0,1,2,3,4,5,6,7,8,9)

for t in tuple:

print(t)

# 记录结束时间

tend_time = time.time()

# 计算并打印执行时间

texecution_time = tend_time - tstart_time

print(f"tuple executed in {texecution_time:4f}s")

元组作为一个基础的数据类型,通过程序的执行



可以看出,执行的效率时0.000502s

通过本次的结果验证tuple>range>string>list当然这个结果并不是唯一的,真实开发环境下,还要服务器性能问题以及时间复杂度问题。如果你对人工智能有所了解你会发现矩阵的表现形式其实就是tuple类型。

在真实开发中可能会考虑数据的完整性问题,会考虑使用集合、字典、生成器、迭代器等,这些都是在Python中常用的处理大数据的方法,当然也可以采用并发操作,优化程序的时间复杂度,以及借助Cython的方式编写C语言的扩展,这些内容由于时间的问题,不会讲解,在余后的时间内会娓娓给大家道来的。

相关文章

python入门009:遍历列表 遍历列表 python

一、遍历列表遍历,简单理解就是对每个数据都过一遍。1、简单遍历在程序中,有时需要遍历列表中的所有元素,对每个元素都执行相同的操作。例如,想要逐个显示列表中的人名元素,这时可以通过使用for循环实现列表...

python 列表的遍历和循环 python列表的遍历输出

在Python中,列表是一种常用的数据结构,用于存储一组有序的元素。列表的遍历和循环是常见的操作,可以通过多种方式实现。1. 使用for循环遍历列表:my_list = [1, 2, 3, 4, 5]...

python每天学习一点点(遍历列表-for循环)

什么是遍历列表,就是将列表中的各个元素单独查找出来,以便完成相应的操作。遍历列表常用的就是for循环。那么如何使用呢?for循环语法格式:for item in listname: # 代码其...

一文掌握Python 字典遍历的8种方法

Python 中的字典是键值对的集合,其中每个键都是唯一的。它们广泛用于各种用途,例如存储配置设置、管理数据或映射数据关系。为了有效地使用字典,需要了解如何循环访问它们1. 使用 For 循环遍历字典...

一文了解 Python 列表 python列表常用的五种方法

假设你打算去附近的商店购买必需品,你要做的第一件事是什么?有答案了吗?是的,你可能会写下购物清单!Python 有一个名为 list 的内置数据结构,它与你的购物清单非常相似。这篇文章介绍 Pytho...

Python列表的使用方法 python列表的常用方法

理解 Python 列表从本质上讲,列表是项目的集合,每个项目都由一个索引标识。列表的用途非常广泛,可以存储各种数据类型,包括数字、字符串,甚至其他列表。它们是 Python 的基本数据结构之一,广泛...