什么时候应该使用字典、列表或集合?

是否存在更适合每种数据类型的场景?


当前回答

列表就是它们看起来的那样——一个值的列表。每一个都有编号,从0开始——第一个编号为0,第二个编号为1,第三个编号为2,以此类推。您可以从列表中删除值,并在末尾添加新值。例子:你的许多猫的名字。

元组就像列表一样,但是你不能改变它们的值。你首先给出的值,就是你在接下来的程序中一直用到的值。同样,每个值都从0开始编号,以便于参考。例如:一年中月份的名称。

Dictionaries are similar to what their name suggests - a dictionary. In a dictionary, you have an 'index' of words, and for each of them a definition. In python, the word is called a 'key', and the definition a 'value'. The values in a dictionary aren't numbered - tare similar to what their name suggests - a dictionary. In a dictionary, you have an 'index' of words, and for each of them a definition. In python, the word is called a 'key', and the definition a 'value'. The values in a dictionary aren't numbered - they aren't in any specific order, either - the key does the same thing. You can add, remove, and modify the values in dictionaries. Example: telephone book.

其他回答

字典:python字典就像一个哈希表,以键作为索引,对象作为值。

列表:列表用于保存数组中的对象,并根据该对象在数组中的位置进行索引。

Set: Set是一个带有函数的集合,这些函数可以判断一个对象是否存在于集合中。

你只是需要一个有序的项目序列吗?列个清单。 您是否只需要知道您是否已经获得了一个特定的值,但不需要进行排序(并且您不需要存储副本)?使用一个集合。 您是否需要将值与键相关联,以便稍后可以有效地(按键)查找它们?使用字典。

就OP问的问题而言,可能跑题了-

List:有序、可变对象的不可分解集合。 元组:有序的、不可变对象的可哈希集合,如 列表。 Set:一个不可哈希的无序、可变和不同的集合 对象。 Frozenset:无序、不可变和的可哈希集合 不同的对象。 字典:可变对象的不可哈希的无序集合 将哈希值映射到任意值。

要从视觉上比较它们,一目了然,请看图-

字典:当你想用索引以外的东西来查找某个东西时。例子:

dictionary_of_transport = {
    "cars": 8,
    "boats": 2,
    "planes": 0
}
print("I have the following amount of planes:")
print(dictionary_of_transport["planes"])
#Output: 0

列表和集:当您想要添加和删除值时。 列表:使用索引查找值 集:存储值,但不能使用任何方法访问它们。

当您需要唯一元素的无序集合时,请使用set。(例如,当您需要文档中使用的所有单词的集合时)。

当你想收集一个不可变的有序元素列表时,使用元组。(例如,当您希望将(name, phone_number)对用作集合中的元素时,您将需要元组而不是列表,因为集合要求元素是不可变的)。

当您想收集一个可变的有序元素列表时,请使用列表。(例如,当您想要将新的电话号码追加到列表:[number1, number2,…])。

当您需要从键映射到值时,请使用字典。(例如,当你想要一个将名字映射到电话号码的电话簿:{'John Smith': '555-1212'})。注意字典中的键是无序的。(如果你遍历字典(电话簿),键(名字)可能以任何顺序出现)。