数据结构是组织数据的工具。不仅仅是为了存储,也是为了解决一些问题。 Python中有一些数据结构,包括列表、字典、元组和集合。
列表是一种使用索引顺序存储项目的数据结构。这是列表数据结构的图示。
在 Python 中创建列表的方法有很多种。
items = [1,2,3,4]
items = []
可以通过索引直接访问列表中的项目。
items = [1,2,3,4,5] # access item at index 2 result = items[2] print(result) # returns 3
可以使用 for 循环检索列表中的所有项目。这是一个例子。
# create a new list items = [1,2,3,4,5] # retrieve each item inside a list for item in items: print(item)
输出
1 2 3 4 5
根据上面的代码,名为 items 的列表是使用指定的 item 创建的。使用 for 循环检索每个项目。
append() 函数将一个新项目添加到列表中。这是append() 用法的示例。
# create empty list shopping_list = [] # add some items shopping_list.append("apple") shopping_list.append("milk") shopping_list.append("cereal") # retrieve all items for item in shopping_list: print(item)
输出
apple milk cereal
append() 如下图所示。
除了append()函数之外,insert()函数在特定索引中添加一个新项目。这是一个例子。
items = ["apple","banana","mango","coffee"] # add new item at index 1 items.insert(1,"cereal") # retrieve all items for item in items: print(item)
输出
apple cereal banana mango coffee
insert() 如下图所示。
更新列表中的项目非常简单。只需指定项目的索引,然后使用更新的项目更改它。
# create a list drinks = ["milkshake","black tea","banana milk","mango juice"] # update value at index 2 drinks[2] = "chocolate milk" print(f"value at index 2: {drinks[2]}")
输出
value at index 2: chocolate milk
remove() 函数从列表中删除一个项目。这是一个例子。
items = ["apple","banana","mango","coffee"] # remove "mango" items.remove("mango") # remove item at index 1 items.remove(items[1]) print("after removed") for item in items: print(item)
输出
after removed apple coffee
可以通过指定列表的起始索引和结束索引来选择列表中的项目。这是在列表中选择项目的基本结构。
list_name[start:end]
项目是从开始索引到但不包括结束索引选择的。这是在列表中选择项目的示例。
items = ["apple","mango","papaya","coconut","banana"] # select items from index 1 up to but not including index 3 selected = items[1:3] # show all items print(f"all items: {items}") # show the selected items print(f"selected: {selected}")
输出
all items: ['apple', 'mango', 'papaya', 'coconut', 'banana'] selected: ['mango', 'papaya']
列表理解是一种创建列表的“函数式”方式。为了理解列表理解,让我们看一个使用迭代方法创建包含偶数值的列表的示例。
evens = [] for i in range(1,11): evens.append(i*2) print(evens)
输出
items = [1,2,3,4]
基于上面的代码,偶数是使用 for 循环的迭代方法生成的。上面的例子也可以使用列表理解来实现。这是使用列表理解生成偶数的示例。
items = []
输出
items = [1,2,3,4,5] # access item at index 2 result = items[2] print(result) # returns 3
基于上面的代码,列表理解方法提供了更简洁的代码,并且与之前的迭代方法相同的结果。
列表推导式可以与 if 分支一起使用。在此示例中,列表理解用于根据特定条件过滤某些值。
# create a new list items = [1,2,3,4,5] # retrieve each item inside a list for item in items: print(item)
输出
1 2 3 4 5
这是上一个示例的迭代版本。
# create empty list shopping_list = [] # add some items shopping_list.append("apple") shopping_list.append("milk") shopping_list.append("cereal") # retrieve all items for item in shopping_list: print(item)
列表可以像矩阵一样以多维方式存储。这是声明用于存储数字矩阵的多维列表的示例。
apple milk cereal
可以使用双方括号 ([x][y]) 访问该项目,方法是指定 x 表示主列表的索引,而 y 表示嵌套列表内项目的索引。这是数字矩阵的图示。
多维列表中的项目可以通过使用嵌套的 for 循环来检索。
items = ["apple","banana","mango","coffee"] # add new item at index 1 items.insert(1,"cereal") # retrieve all items for item in items: print(item)
输出
apple cereal banana mango coffee
字典是一种将记录存储为键值对的数据结构。每个键必须是唯一的,同时允许重复值。这说明了字典的数据结构:
创建字典的方法有很多种:
# create a list drinks = ["milkshake","black tea","banana milk","mango juice"] # update value at index 2 drinks[2] = "chocolate milk" print(f"value at index 2: {drinks[2]}")
value at index 2: chocolate milk
可以使用for循环检索字典中的所有记录。这是一个例子。
items = ["apple","banana","mango","coffee"] # remove "mango" items.remove("mango") # remove item at index 1 items.remove(items[1]) print("after removed") for item in items: print(item)
输出
after removed apple coffee
要在字典中插入新项目,请指定该项目的键值对。确保密钥是唯一的。
list_name[start:end]
这是在字典中插入新项目的示例。
items = ["apple","mango","papaya","coconut","banana"] # select items from index 1 up to but not including index 3 selected = items[1:3] # show all items print(f"all items: {items}") # show the selected items print(f"selected: {selected}")
输出
all items: ['apple', 'mango', 'papaya', 'coconut', 'banana'] selected: ['mango', 'papaya']
要更新字典中的项目,请指定项目的键,然后插入更新的值。
evens = [] for i in range(1,11): evens.append(i*2) print(evens)
输出
[2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
字典中的键和值可以使用不同的方法独立访问。
evens = [x*2 for x in range(1,11)] # using list comprehension print(evens)
输出
items = [1,2,3,4]
pop() 方法根据给定的键从字典中删除项目。
items = []
输出
items = [1,2,3,4,5] # access item at index 2 result = items[2] print(result) # returns 3
clear() 方法会删除字典中的所有项目。
# create a new list items = [1,2,3,4,5] # retrieve each item inside a list for item in items: print(item)
输出
1 2 3 4 5
元组是一种不可变的数据结构,用于存储许多值。元组可以包含可变值。创建新元组有两种方法。
# create empty list shopping_list = [] # add some items shopping_list.append("apple") shopping_list.append("milk") shopping_list.append("cereal") # retrieve all items for item in shopping_list: print(item)
输出
apple milk cereal
items = ["apple","banana","mango","coffee"] # add new item at index 1 items.insert(1,"cereal") # retrieve all items for item in items: print(item)
元组是不可变的,这意味着它的值一旦创建就无法更改或更新。
apple cereal banana mango coffee
可以使用“元组解包”检索元组中的值(此概念类似于 JavaScript 中的对象解构)。
解包时,解包值的大小必须等于元组的大小。
# create a list drinks = ["milkshake","black tea","banana milk","mango juice"] # update value at index 2 drinks[2] = "chocolate milk" print(f"value at index 2: {drinks[2]}")
输出
value at index 2: chocolate milk
集合是一种无序的数据结构,仅包含唯一的项。创建集合的方法有很多种。
items = ["apple","banana","mango","coffee"] # remove "mango" items.remove("mango") # remove item at index 1 items.remove(items[1]) print("after removed") for item in items: print(item)
可以使用 set() 函数创建空集。
after removed apple coffee
集合数据结构自动删除重复值。
list_name[start:end]
输出
items = ["apple","mango","papaya","coconut","banana"] # select items from index 1 up to but not including index 3 selected = items[1:3] # show all items print(f"all items: {items}") # show the selected items print(f"selected: {selected}")
可以使用 for 循环访问集合内的值。
all items: ['apple', 'mango', 'papaya', 'coconut', 'banana'] selected: ['mango', 'papaya']
输出
evens = [] for i in range(1,11): evens.append(i*2) print(evens)
集合数据结构提供并、交、差、对称差等多种操作。
并集运算返回两个集合中的所有项目。
[2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
输出
evens = [x*2 for x in range(1,11)] # using list comprehension print(evens)
交集运算返回集合交集中存在的所有项目。
[2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
输出
samples = [12,32,55,10,2,57,66] result = [s for s in samples if s % 4 == 0] # using list comprehension print(result)
差异运算返回仅存在于某个集合中的所有项目。
[12, 32]
输出
samples = [12,32,55,10,2,57,66] result = [] for s in samples: if s % 4 == 0: result.append(s) print(result)
对称差分运算返回任一集合中存在但不在交集中的所有项目。
matrix = [ [1,2,3], [4,5,6], [7,8,9], ]
输出
items = [1,2,3,4]
函数是一个包含指令的可调用单元,旨在减少代码重复和组织复杂的任务。有两种类型:void 函数(无返回值)和有返回值的函数。
这是Python中函数的基本结构。
items = []
这是Python中void函数(无返回值)的示例。
items = [1,2,3,4,5] # access item at index 2 result = items[2] print(result) # returns 3
输出
# create a new list items = [1,2,3,4,5] # retrieve each item inside a list for item in items: print(item)
基于上面的代码,创建了名为 hello() 的函数。通过指定函数名后跟括号 () 来调用该函数。
这是有返回值的函数示例。
1 2 3 4 5
输出
# create empty list shopping_list = [] # add some items shopping_list.append("apple") shopping_list.append("milk") shopping_list.append("cereal") # retrieve all items for item in shopping_list: print(item)
基于上面的代码,创建了名为 add() 的函数来对两个数字求和。 add() 函数的返回值存储在 result 变量中。
使用返回值函数时,请确保使用返回值。
Python 中函数的主题将在单独的章节中详细解释。
让我们创建一个简单的待办事项列表应用程序。该应用程序使用列表作为待办事项的存储,并利用函数来实现更清晰的代码。
第一步是导入 uuid 包并创建一个名为 todos 的列表,用于存储 todo 记录。 uuid 包用作 todo 记录的标识符 (ID)。
apple milk cereal
之后,创建一个 view_todos() 函数来检索所有待办事项记录。所有待办事项记录均使用 for 循环检索。
items = ["apple","banana","mango","coffee"] # add new item at index 1 items.insert(1,"cereal") # retrieve all items for item in items: print(item)
创建一个view_todo()函数,通过指定的ID检索todo记录。在 for 循环内检查每个待办事项记录,以检查当前待办事项 ID 是否等于指定的 ID。如果匹配,则显示待办事项记录。
apple cereal banana mango coffee
创建一个create_todo()函数来创建一个新的待办事项。 todo 记录表示为带有 id 和 title 字段的字典。
# create a list drinks = ["milkshake","black tea","banana milk","mango juice"] # update value at index 2 drinks[2] = "chocolate milk" print(f"value at index 2: {drinks[2]}")
创建 update_todo() 函数来更新待办事项。在此函数中,todo 记录根据指定的 ID 进行更新。
value at index 2: chocolate milk
创建一个delete_todo()函数来删除一个todo。在此函数中,删除指定ID的todo记录。
items = ["apple","banana","mango","coffee"] # remove "mango" items.remove("mango") # remove item at index 1 items.remove(items[1]) print("after removed") for item in items: print(item)
最后,创建一个名为 display_menu() 的函数来显示应用程序的主菜单。
after removed apple coffee
这是完整的代码。
list_name[start:end]
这是应用程序的输出。
希望这篇文章对你学习Python有所帮助。如果您有任何意见,请在评论区告诉我。
以上是Python 教程 - ata 结构的详细内容。更多信息请关注PHP中文网其他相关文章!