Python中的数据结构

139 阅读6分钟

在任何编程语言中,我们都需要处理数据。 现在,我们需要与数据打交道的最基本的事情之一是以一种有组织的方式有效地存储、管理和访问数据,以便在需要时为我们的目的加以利用。数据结构被用来满足我们所有的需求。

什么是数据结构?

数据结构是编程语言的基本构建模块。它的目的是提供一种系统的方法来满足文章中提到的所有要求。Python中的数据结构是List、Tuple、Dictionary和Set。它们被认为是Python中隐含的或内置的数据结构。我们可以使用这些数据结构并对它们应用许多方法来管理、联系、操作和利用我们的数据。

我们也有用户定义的自定义数据结构,即**堆栈队列关联列表**。它们允许用户完全控制其功能并将其用于高级编程目的。然而,在这篇文章中,我们将集中讨论内置数据结构。

隐式数据结构 Python

LIST

列表帮助我们用多种数据类型按顺序存储数据。它们可以与数组相媲美,例外的是它们可以同时存储不同的数据类型,如字符串和数字。列表中的每个项目或元素都有一个指定的索引。由于Python 使用基于 0 的索引,第一个元素的索引是 0,然后继续计数。列表的最后一个元素以 -1 开始,可以用来访问从最后一个到第一个的元素。要创建一个列表,我们必须把项目写在方括号内。

关于列表,需要记住的最重要的事情之一是它们是可变的。这只是意味着我们可以通过使用索引操作符直接访问列表中的某个元素,作为赋值语句的一部分来改变它。 我们还可以对我们的列表进行操作以获得所需的输出。让我们通过代码来更好地了解列表和列表操作。

1.创建一个列表

#creating the list
my_list = ['p', 'r', 'o', 'b', 'e']
print(my_list)

输出

['p', 'r', 'o', 'b', 'e']

2.访问列表中的项目

#accessing the list 

#accessing the first item of the list
my_list[0]

输出

'p'

#accessing the third item of the list
my_list[2]

'o'

3.向列表中添加新项目

#adding item to the list
my_list + ['k']

输出

['p', 'r', 'o', 'b', 'e', 'k']

4.删除项目

#removing item from the list
#Method 1:

#Deleting list items
my_list = ['p', 'r', 'o', 'b', 'l', 'e', 'm']

# delete one item
del my_list[2]

print(my_list)

# delete multiple items
del my_list[1:5]

print(my_list)

输出

['p', 'r', 'b', 'l', 'e', 'm']
['p', 'm']

#Method 2:

#with remove fucntion
my_list = ['p','r','o','k','l','y','m']
my_list.remove('p')


print(my_list)

#Method 3:

#with pop function
print(my_list.pop(1))

# Output: ['r', 'k', 'l', 'y', 'm']
print(my_list)

输出

['r', 'o', 'k', 'l', 'y', 'm']
o
['r', 'k', 'l', 'y', 'm']

5.列表排序

#sorting of list in ascending order

my_list.sort()
print(my_list)

输出

['k', 'l', 'm', 'r', 'y']

#sorting of list in descending order

my_list.sort(reverse=True)
print(my_list)

输出

['y', 'r', 'm', 'l', 'k']

6.寻找列表的长度

#finding the length of list

len(my_list)

输出

5

元组(TUPLE)

元组与列表非常相似,但有一个关键的区别,即元组是不可更改的,与列表不同。一旦我们创建了一个元组或有了一个元组,我们就不允许改变里面的元素。然而,如果我们在元组内有一个元素,而元组本身就是一个列表,那么只有在这个时候我们才能访问或改变这个列表。要创建一个元组,我们必须把项目写在括号里。和列表一样,我们也有类似的方法可以用于元组。让我们通过一些代码片断来了解如何使用元组。

1.创建一个元组

#creating of tuple

my_tuple = ("apple", "banana", "guava")
print(my_tuple)

输出

('apple', 'banana', 'guava')

2.从一个元组中访问项目

#accessing first element in tuple

my_tuple[1]

输出

'banana'

3.元组的长度

#for finding the lenght of tuple

len(my_tuple)

输出

3

4.将一个元组转换为列表

#converting tuple into a list

my_tuple_list = list(my_tuple)
type(my_tuple_list)

输出

list

5.反转一个元组

#Reversing a tuple

tuple(sorted(my_tuple, reverse=True)) 

输出

('guava', 'banana', 'apple')

6.对一个元组进行排序

#sorting tuple in ascending order

tuple(sorted(my_tuple)) 

输出

('apple', 'banana', 'guava')

7.从元组中删除元素

为了从元组中删除元素,我们首先将元组转换成一个列表,就像我们在上面的一个方法中所做的那样(第4点),然后按照列表的相同过程,明确地删除整个元组,只是使用 del语句

字典

字典是一个集合,简单地说,它是用来存储一个带有某个键的值,并提取给定键的值。我们可以把它看作是一组键:值对 ,字典中的每个都应该是唯一的,这样我们就可以相应地访问相应的

一个 dictionary 是通过使用包含 key: value 对的大括号 { }来表示的。dictionary 中的每一个对都用逗号隔开。dictionary 中的元素是无序的,当我们访问或存储它们时,顺序并不重要。

它们是MUTABLE的,这意味着我们可以在 dictionary 中添加、删除或更新元素。这里有一些代码例子,可以让我们更好地理解 python 中的 dictionary。

需要注意的一点是,我们不能用一个可变的对象作为 dictionary 中的一个键。所以,一个列表不允许作为 dictionary 中的键。

1.创建一个字典

#creating a dictionary

my_dict = {
    1:'Delhi',
    2:'Patna',
    3:'Bangalore'
}
print(my_dict)

Output

{1: 'Delhi', 2: 'Patna', 3: 'Bangalore'}

这里,整数是字典的键,与整数相关的城市名称是字典的值。

2.访问字典中的项目

#access an item

print(my_dict[1])

输出

'Delhi'

3.字典的长度

#length of the dictionary

len(my_dict)

输出

3

4.对字典进行排序

#sorting based on the key 

Print(sorted(my_dict.items()))


#sorting based on the values of dictionary

print(sorted(my_dict.values()))

输出

[(1, 'Delhi'), (2, 'Bangalore'), (3, 'Patna')]

['Bangalore', 'Delhi', 'Patna']

5. 在字典中添加元素

#adding a new item in dictionary 

my_dict[4] = 'Lucknow'
print(my_dict)

输出

{1: 'Delhi', 2: 'Patna', 3: 'Bangalore', 4: 'Lucknow'}

6.从字典中删除元素

#for deleting an item from dict using the specific key

my_dict.pop(4)
print(my_dict)

#for deleting last item from the list

my_dict.popitem()

#for clearing the dictionary

my_dict.clear()
print(my_dict)

输出

{1: 'Delhi', 2: 'Patna', 3: 'Bangalore'}
(3, 'Bangalore')
{}

集合

集是Python中的另一种数据类型,它是一个无序的集合,没有重复的元素。集的常见用途是去除重复的值和进行成员测试。大括号set()函数可以用来创建集合。有一点需要注意的是,在创建空集时,我们必须使用set(),not { } 。后者会创建一个空的字典。

下面是一些代码例子,让我们更好地了解python中的集合。

1.创建一个

#creating set

my_set = {"apple", "mango", "strawberry", "apple"}
print(my_set)

输出

{'apple', 'strawberry', 'mango'}

2.从一个集合中访问项目

#to test for an element inside the set

"apple" in my_set

输出

True

3.集合的长度

print(len(my_set))

输出

3

4.对一个集合进行排序

print(sorted(my_set))

输出

['apple', 'mango', 'strawberry']

5. 在集合中添加元素

my_set.add("guava")
print(my_set)

输出

{'apple', 'guava', 'mango', 'strawberry'}

6.从集合中删除元素

my_set.remove("mango")
print(my_set)

输出

{'apple', 'guava', 'strawberry'}

总结

在这篇文章中,我们浏览了Python中最常用的数据结构,也看到了与之相关的各种方法。

进一步阅读

参考资料

请查看Python数据结构的官方文档,其中包含了关于该结构的详尽信息。