Python学习Day14主要涵盖了数据结构和算法相关的内容。在本篇文章中,我们将从多个方面对这些内容进行详细的阐述。
一、线性数据结构
1、列表(List)
list1 = [1, 2, 3, 4, 5]
print(list1)
list2 = ['a', 'b', 'c', 'd', 'e']
print(list2)
list3 = [1, 'a', 2, 'b', 3, 'c']
print(list3)
列表是Python中最常用的数据结构之一,它可以存储任意类型的数据。我们可以使用中括号来创建列表,也可以使用list()函数来创建。列表的元素可以通过索引进行访问和修改,还可以进行切片操作。
2、元组(Tuple)
tuple1 = (1, 2, 3, 4, 5)
print(tuple1)
tuple2 = ('a', 'b', 'c', 'd', 'e')
print(tuple2)
tuple3 = (1, 'a', 2, 'b', 3, 'c')
print(tuple3)
元组与列表类似,也可以存储任意类型的数据,不同之处在于元组是不可变的,即在创建之后就不能修改。元组的元素可以通过索引进行访问,但不能进行修改。
二、树形数据结构
1、字典(Dictionary)
dict1 = {'name': 'Tom', 'age': 18, 'gender': 'male'}
print(dict1)
dict2 = dict(name='Jerry', age=20, gender='female')
print(dict2)
字典是以键值对的形式存储数据的数据结构。字典的键必须是不可变的,可以是字符串、数字或元组,而值可以是任意类型的数据。使用花括号或dict()函数可以创建字典,使用键来访问和修改字典的元素。
2、集合(Set)
set1 = {1, 2, 3, 4, 5}
print(set1)
set2 = set(['a', 'b', 'c', 'd', 'e'])
print(set2)
集合是一种无序且不重复的数据结构。集合的元素可以是任意类型的数据,使用花括号或set()函数可以创建集合。集合可以进行集合运算,如并集、交集等。
三、算法
1、递归算法
def factorial(n):
if n == 1:
return 1
else:
return n * factorial(n - 1)
result = factorial(5)
print(result)
递归是一种在函数定义中使用函数自身的方法。递归算法通常具有简洁的代码和清晰的逻辑,但也容易造成性能上的问题。递归函数必须具有终止条件,以避免无限递归。
2、排序算法
def bubbleSort(nums):
n = len(nums)
for i in range(n):
for j in range(0, n - i - 1):
if nums[j] > nums[j + 1]:
nums[j], nums[j + 1] = nums[j + 1], nums[j]
nums = [5, 2, 7, 1, 9]
bubbleSort(nums)
print(nums)
排序算法是对一组数据进行排序的算法。冒泡排序是一种简单的排序算法,它通过比较相邻的元素并交换顺序来进行排序。冒泡排序的时间复杂度为O(n^2)。
四、总结
通过本篇文章的学习,我们详细了解了Python中的数据结构和算法相关的内容。线性数据结构包括列表和元组,树形数据结构包括字典和集合。算法方面,我们学习了递归算法和排序算法。这些知识对于我们编写高效、优雅的Python程序非常重要。