Home  >  Article  >  Backend Development  >  What is the difference between lists and tuples in Python? Understand the similarities and differences between tuples and lists in one article

What is the difference between lists and tuples in Python? Understand the similarities and differences between tuples and lists in one article

Tomorin
TomorinOriginal
2018-08-14 11:21:208329browse

Speaking of how to distinguish lists from python tuples, let’s first introduce what Python tuples are:


Having said so much, what is a Python tuple?

Python's tuples are similar to lists. The difference is that the elements of tuples cannot be modified. Tuples use parentheses and lists use square brackets. Tuple creation is simple, just add elements in brackets and separate them with commas.

The following example:

tup1 = ('physics', 'chemistry', 1997, 2000)
tup2 = (1, 2, 3, 4, 5 )
tup3 = "a", "b", "c", "d"

The created empty element

tup1 = ()

When the tuple contains only one element, you need to add a comma after the element

tup1 = (50,)

What is a Python list, please see:

The popular Python list knowledge in recent years, and detailed examples of deleting and adding list elements

Next, let’s compare The similarities between lists and python tuples

The similarities between lists and tuples in Python:

They are all sequence typesBefore answering their differences, let’s first talk about the similarities between the two. List and tuple are both sequence type container objects, which can store any type of data and support slicing, iteration and other operations

foos = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 
foos[0:10:2] 
[0, 2, 4, 6, 8]
bars = (0, 1, 2, 3, 4, 5, 6, 7, 8, 9) 
bars[1:10:2] (1, 3, 5, 7, 9) 
两者的操作如此相似,Python 为什么还要设计一种叫 tuple 的类型出来呢?这就要从它们的不同之处来寻找答案。

The differences between lists and tuples in Python:

In addition to the literal difference between the two types (brackets and square brackets), the most important point is that tuple is an immutable type with a fixed size, while list is a variable type and the data can change dynamically. This difference makes the methods, application scenarios, and performance provided by the two very different.

List-specific methods:

foo = [2,3,1,9,4] 
foo.sort() # 排序 
foo.insert(5,10) # 插入 
foo.reverse() # 反转 
foo.extend([-1, -2]) # 扩展 
foo.remove(10) # 移除 
foo.pop() # 弹出最后一个元素 
foo.append(5) # 追加 所有的操作都基于原来列表进行更新,而 tuple 作为一种不可变的数据类型,同样大小的数据,初始化和迭代
tuple 都要快于 list
python -m timeit “[1,2,3,4,5]” 
10000000 loops, best of 3: 0.123 usec per loop
python -m timeit “(1,2,3,4,5)” 
100000000 loops, best of 3: 0.0166 usec per loop 
同样大小的数据,tuple 占用的内存空间更少
foo = tuple(range(1000)) 
bar = list(range(1000)) 
foo.sizeof() 8024 
bar.sizeof() 9088 原子性的 tuple 对象还可作为字典的键
foo = (1,(2,3)) 
d = {foo: 1}
bar = (1, [2,3]) # 非原子性tuple,因为元组中包含有不可哈希的list 
d = {bar: 1} 
Traceback (most recent call last): 
File “”, line 1, in 
TypeError: unhashable type: ‘list’

For more related knowledge points, click to visit

PHP Chinese website Python tutorial

The above is the detailed content of What is the difference between lists and tuples in Python? Understand the similarities and differences between tuples and lists in one article. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn