Python入门系列(四)傻傻分不清:列表、元组、字典、集合的区别

四句话总结

  • 列表是一个有序且可更改的集合,允许重复成员
  • 元组是一个有序且不可更改的集合,允许重复成员。
  • 集合是一个无序、不可更改*且未索引的集合,没有重复成员。
  • 字典是一个有序且可更改的集合,没有重复成员。

公有的部分

获取长度,使用len()

要确定列表中有多少项,请使用len()函数

thislist = [“apple”, “banana”, “cherry”]print(len(thislist))

要确定一个元组有多少项,请使用len()函数

thistuple = (“apple”, “banana”, “cherry”)print(len(thistuple))

要确定一个集合有多少项,请使用len()函数。

thisset = {“apple”, “banana”, “cherry”}print(len(thisset))

要确定字典有多少项,请使用len()函数

thisdict = { “brand”: “Ford”, “model”: “Mustang”, “year”: 1964, “year”: 2020}print(len(thisdict))

通过引用索引号来访问

列表项已编制索引,您可以通过引用索引号来访问它们

thislist = [“apple”, “banana”, “cherry”]print(thislist[1])

您可以通过引用方括号内的索引号来访问元组项

thistuple = (“apple”, “banana”, “cherry”)print(thistuple[1])

是否存在指定项,请使用in关键字

要确定列表中是否存在指定项,请使用in关键字

thislist = [“apple”, “banana”, “cherry”]if “apple” in thislist: print(“Yes, ‘apple’ is in the fruits list”)

要确定元组中是否存在指定项,请使用in关键字

thistuple = (“apple”, “banana”, “cherry”)if “apple” in thistuple: print(“Yes, ‘apple’ is in the fruits tuple”)

检查集合中是否有“香蕉”

thisset = {“apple”, “banana”, “cherry”}print(“banana” in thisset)

要确定字典中是否存在指定的键,请使用in关键字

thisdict = { “brand”: “Ford”, “model”: “Mustang”, “year”: 1964}if “model” in thisdict: print(“Yes, ‘model’ is one of the keys in the thisdict dictionary”)

可以使用for循环遍历

可以使用for循环遍历列表项

thislist = [“apple”, “banana”, “cherry”]for x in thislist: print(x)

可以使用for循环遍历元组项

thistuple = (“apple”, “banana”, “cherry”)for x in thistuple: print(x)

在集合中循环,并打印值

thisset = {“apple”, “banana”, “cherry”}for x in thisset: print(x)

循环字典

for x in thisdict: print(thisdict[x])

还可以使用values()方法返回字典的值

for x in thisdict.values(): print(x)

可以使用keys()方法返回字典的键

for x in thisdict.keys(): print(x)

使用items()方法循环遍历键和值

for x, y in thisdict.items(): print(x, y)

clear()方法清空

clear()方法清空列表。

thislist = [“apple”, “banana”, “cherry”]thislist.clear()print(thislist)

clear()方法清空集合

thisset = {“apple”, “banana”, “cherry”}thisset.clear()print(thisset)

clear()方法清空字典

thisdict = { “brand”: “Ford”, “model”: “Mustang”, “year”: 1964}thisdict.clear()print(thisdict)

del关键字

del关键字还会删除指定的索引

thislist = [“apple”, “banana”, “cherry”]del thislist[0]print(thislist)

del关键字也可以完全删除列表。

thislist = [“apple”, “banana”, “cherry”]del thislist

del关键字将完全删除集合

thisset = {“apple”, “banana”, “cherry”}del thissetprint(thisset)

del关键字删除字典具有指定键名的项

thisdict = { “brand”: “Ford”, “model”: “Mustang”, “year”: 1964}del thisdict[“model”]print(thisdict)

remove()方法

remove()方法删除指定的项。

thislist = [“apple”, “banana”, “cherry”]thislist.remove(“banana”)print(thislist)

要删除集合中的项,请使用remove()或discard()方法。

thisset = {“apple”, “banana”, “cherry”}thisset.remove(“banana”)print(thisset)

pop()方法

pop()方法删除列表指定的索引。

thislist = [“apple”, “banana”, “cherry”]thislist.pop(1)print(thislist)

您也可以使用pop()方法删除一个项目,但此方法将删除最后一个项目。请记住,集合是无序的,因此您将不知道删除了哪些项。

thisset = {“apple”, “banana”, “cherry”}x = thisset.pop()print(x)print(thisset)

pop()方法移除字典具有指定键名的项

thisdict = { “brand”: “Ford”, “model”: “Mustang”, “year”: 1964}thisdict.pop(“model”)print(thisdict)

列表

insert()方法在指定的索引处插入项

thislist = [“apple”, “banana”, “cherry”]thislist.insert(2, “watermelon”)print(thislist)

要将项目添加到列表的末尾,请使用append()方法

thislist = [“apple”, “banana”, “cherry”]thislist.append(“orange”)print(thislist)

要将其他列表中的元素附加到当前列表,请使用extend()方法。

thislist = [“apple”, “banana”, “cherry”]tropical = [“mango”, “pineapple”, “papaya”]thislist.extend(tropical)print(thislist)

extend()方法不必附加列表,您可以添加任何可迭代对象(元组、集合、字典等)。

thislist = [“apple”, “banana”, “cherry”]thistuple = (“kiwi”, “orange”)thislist.extend(thistuple)print(thislist)

如果不指定索引,则pop()方法将删除最后一项。

thislist = [“apple”, “banana”, “cherry”]thislist.pop()print(thislist)

列表理解提供了循环列表的最短语法:newlist = [*expression* for *item* in *iterable* if *condition* == True]

thislist = [“apple”, “banana”, “cherry”][print(x) for x in thislist]fruits = [“apple”, “banana”, “cherry”, “kiwi”, “mango”]newlist = [x for x in fruits if “a” in x]print(newlist)newlist = [x.upper() for x in fruits]

列表对象有一个sort()方法,默认情况下,该方法将按字母数字升序对列表进行排序

thislist = [“orange”, “mango”, “kiwi”, “pineapple”, “banana”]thislist.sort()print(thislist)

在排序列表时,我们可以使用内置函数作为关键函数

thislist = [“banana”, “Orange”, “Kiwi”, “cherry”]thislist.sort(key = str.lower)print(thislist)

reverse()方法反转元素的当前排序顺序。

thislist = [“banana”, “Orange”, “Kiwi”, “cherry”]thislist.reverse()print(thislist)

有多种方法可以复制,一种方法是使用内置的列表方法copy()。

您不能简单地通过键入list2=list1复制列表,因为:list2将仅是对list1的引用,并且在list1中所做的更改也将自动在list2中进行。

thislist = [“apple”, “banana”, “cherry”]mylist = thislist.copy()print(mylist)

制作副本的另一种方法是使用内置方法list()。

thislist = [“apple”, “banana”, “cherry”]mylist = list(thislist)print(mylist)

在Python中,有几种方法可以连接或串联两个或多个列表。最简单的方法之一是使用+运算符。

list1 = [“a”, “b”, “c”]list2 = [1, 2, 3]list3 = list1 + list2print(list3)

也可以使用extend()方法,其目的是将元素从一个列表添加到另一个列表

list1 = [“a”, “b” , “c”]list2 = [1, 2, 3]list1.extend(list2)print(list1)

元组

要创建只有一个项的元组,必须在该项后添加逗号,否则Python将无法将其识别为元组。

thistuple = (“apple”,)print(type(thistuple))#NOT a tuplethistuple = (“apple”)print(type(thistuple))

您可以将元组转换为列表,更改列表,然后将列表转换回元组。

x = (“apple”, “banana”, “cherry”)y = list(x)y[1] = “kiwi”x = tuple(y)print(x)

将元组添加到元组。您可以将元组添加到元组中,因此如果要添加一个(或多个)项,请使用该项创建一个新元组,并将其添加到现有元组中.

thistuple = (“apple”, “banana”, “cherry”)y = (“orange”,)thistuple += yprint(thistuple)

我们可以将值提取回变量中,这称为“拆包”

fruits = (“apple”, “banana”, “cherry”)(green, yellow, red) = fruitsprint(green)print(yellow)print(red)

如果变量的数量小于值的数量,则可以在变量名中添加*号,这些值将作为列表分配给变量

fruits = (“apple”, “banana”, “cherry”, “strawberry”, “raspberry”)(green, yellow, *red) = fruitsprint(green)print(yellow)print(red)

要连接两个或多个元组,可以使用+运算符

tuple1 = (“a”, “b” , “c”)tuple2 = (1, 2, 3)tuple3 = tuple1 + tuple2print(tuple3)

如果要将元组的内容乘以给定的次数,可以使用*运算符

fruits = (“apple”, “banana”, “cherry”)mytuple = fruits * 2print(mytuple)

集合

创建集后,不能更改其项,但可以添加新项。

thisset = {“apple”, “banana”, “cherry”}thisset.add(“orange”)print(thisset)

要将其他集合中的项添加到当前集合中,请使用update()方法。

thisset = {“apple”, “banana”, “cherry”}tropical = {“pineapple”, “mango”, “papaya”}thisset.update(tropical)print(thisset)

可以使用union()方法返回包含两个集合中所有项的新集合,也可以使用update()方法将一个集合中的所有项插入另一个集合

set1 = {“a”, “b” , “c”}set2 = {1, 2, 3}set3 = set1.union(set2)print(set3)set1 = {“a”, “b” , “c”}set2 = {1, 2, 3}set1.update(set2)print(set1)

intersection_update()方法将只保留两个集合中存在的项。

x = {“apple”, “banana”, “cherry”}y = {“google”, “microsoft”, “apple”}x.intersection_update(y)print(x)

intersection()方法将返回一个新的集合,该集合只包含两个集合中存在的项。

x = {“apple”, “banana”, “cherry”}y = {“google”, “microsoft”, “apple”}z = x.intersection(y)print(z)

symmetric_difference_update()方法将只保留两个集合中不存在的元素。

x = {“apple”, “banana”, “cherry”}y = {“google”, “microsoft”, “apple”}x.symmetric_difference_update(y)print(x)

symmetric_difference()方法将返回一个新的集合,该集合只包含两个集合中不存在的元素。

x = {“apple”, “banana”, “cherry”}y = {“google”, “microsoft”, “apple”}z = x.symmetric_difference(y)print(z)

字典

您可以通过在方括号内引用字典的键名来访问字典的项

thisdict = { “brand”: “Ford”, “model”: “Mustang”, “year”: 1964}x = thisdict[“model”]

还有一个名为get()的方法,它将给出相同的结果

x = thisdict.get(“model”)

keys()方法将返回字典中所有键的列表。

x = thisdict.keys()

values()方法将返回字典中所有值的列表。

x = thisdict.values()

items()方法将返回字典中的每个项,作为列表中的元组。

x = thisdict.items()

返回的列表是字典项的视图,这意味着对字典所做的任何更改都将反映在项列表中。

car = {“brand”: “Ford”,”model”: “Mustang”,”year”: 1964}x = car.items()print(x) #before the changecar[“year”] = 2020print(x) #after the change

popitem()方法删除最后插入的项(在3.7之前的版本中,将删除随机项)

thisdict = { “brand”: “Ford”, “model”: “Mustang”, “year”: 1964}thisdict.popitem()print(thisdict)

您不能简单地通过键入dict2=dict1来复制字典,因为:dict2将仅是对dict1的引用,在dict1中所做的更改也将自动在dict2中进行。

thisdict = { “brand”: “Ford”, “model”: “Mustang”, “year”: 1964}mydict = thisdict.copy()print(mydict)

字典可以包含字典,这称为嵌套字典。

myfamily = { “child1” : { “name” : “Emil”, “year” : 2004 }, “child2” : { “name” : “Tobias”, “year” : 2007 }, “child3” : { “name” : “Linus”, “year” : 2011 }}child1 = { “name” : “Emil”, “year” : 2004}child2 = { “name” : “Tobias”, “year” : 2007}child3 = { “name” : “Linus”, “year” : 2011}myfamily = { “child1” : child1, “child2” : child2, “child3” : child3}

郑重声明:本文内容及图片均整理自互联网,不代表本站立场,版权归原作者所有,如有侵权请联系管理员(admin#wlmqw.com)删除。
(0)
用户投稿
上一篇 2022年8月22日
下一篇 2022年8月22日

相关推荐

联系我们

联系邮箱:admin#wlmqw.com
工作时间:周一至周五,10:30-18:30,节假日休息