在Python中正确使用元组

时间:2015-10-14 00:11:13

标签: python

考虑我的程序中有以下代码块来读取大文本文件中的数据:

sets = []
for line in open(file, "r"):
    sets.append(line.split()) # sets is a list of lists

我不想更改列表中的值。因为元组在内存和处理器上更容易,我应该做以下操作吗?

sets = []
for line in open(file, "r"):
    sets.append(tuple(line.split())) # sets is a list of tuples

或者只是使用列表,因为数据是同质的? 如果元组更好,我可以过火并执行此操作:

sets = tuple(sets)

2 个答案:

答案 0 :(得分:5)

元组和列表之间的区别是有序的含义。元组和列表都是有序序列,但是列表应该是同构的,而元组通常从它们的顺序中依次绘制含义。例如,有序对是一个元组,因为

(3, 5)

完全不同于

(5, 3)

在您的案例中,似乎有同质数据不需要是不可变的,并且不会从其位置汲取任何含义。因此,我会使用列表列表,而不是元组列表。

答案 1 :(得分:2)

最终可能会使用更少的内存,但是列表仍然会暂时创建,并且您需要额外的工作将它们转换为元组,因此在处理器上可能并不容易。

你真的应该分析你的整体计划,寻找最大的性能弱点,如果你想知道某些东西是否会有所帮助,那就衡量两种可能性。