Python 集合之旅

Python 提供了几种内置类型,它们属于称为集合的模糊类别。虽然 Python 中没有调用正式的类型collection,但有列表、映射和集合。

在本教程中,我们将介绍以下类型:

  • 列表

  • 字符串

  • 字典

列表


Python 中的列表是一种称为序列的内置类型。List 是可变的,允许您添加相同类型或不同类型的项目,使它们成为非常通用的构造。Python 列表类似于其他语言中的数组。

Python 列表确实允许您拥有非唯一元素。

以下是创建列表并向其中添加项目的示例:

alist = [“item1”, “item2”, 4]

请注意,该列表是异构的,包含字符串和数字类型。

要从列表中检索项目,只需引用该项目的索引。Python 列表是零索引的。如果我想要最后一项,即位置 3,我需要使用索引 2:

alist[2]

> 4

返回数字 4。引用列表项时,只需从其位置减去 1 即可获得正确的索引值。

可以使用以下len命令检查列表的长度:

len(alist))

3

要将更多项目添加到列表中,请使用以下append()功能:

alist.append(False)

len(alist)

> 4

我们将列表增加了一个并添加了一种不同的类型——布尔值。该列表根本没有抱怨。

我们可以通过调用删除元素remove()

alist.remove(“item2”)

remove()不返回值。该列表将更新,现在包含三个项目:

[‘item1’, 4, False]

还有其他几种方法可以将项目从列表中取出。我们看到了如何使用它的索引来访问一个项目。如果我访问索引 2,我将得到第 3 项:

thevalue = alist[2]

print(thevalue)

False

上面的代码将为我们提供该项目的副本。该项目仍在列表中。总列表计数不受影响。

但是,如果我们使用pop(),我们会得到该项目,但它也会从列表中删除:

thevalue = alist.pop(1)

print(thevalue)

> 4

print(“after pop”, alist)

> [‘item1’, False]

列表也可以排序。如果我有以下字符串列表:

alpha = [“z”, “b”, “a”, “c”]

您可以使用以下sort()命令对其进行排序:

alpha.sort()

sort()不返回值。不过,alpha现在是排序的。您可以通过打印列表来查看:

print(alpha)

通过调用可以很容易地反转元素reverse()

alpha.reverse()

reverse() 也不返回值,并将反转当前列表。

字符串是列表吗?


字符串与列表有一些相似之处。但是,字符串是不可变的,而列表是可变的。

字符串像列表一样基于索引。您还可以获取字符串中的字符数,就像您可以获取列表中的项目数一样。

例如:

mystring = “The quick brown fox.”

print(len(mystring))

> 20

print(mystring[4])

> q

与列表不同,您不能通过附加来添加另一个字符。您也不能更新字符串中的特定元素。

请注意,如果我们尝试将字符分配给字符串中的特定位置会发生什么:

mystring[4] = ‘z’

> TypeError: ‘str’ object does not support item assignment

这就是字符串的不可变部分发挥作用的地方。

根据字符串,我们可以将字符串转换为列表。从上面获取我们的mystring变量。如果我们split()是字符串,它将默认按空格分割:

stringlist = mystring.split()

stringlist

>[‘The’, ‘quick’, ‘brown’, ‘fox.’]

type(stringlist)

><class ‘list’>

字符串中的每个单词都成为列表中的一个元素。我们还可以看到,类型显然是一个列表。

如果字符串没有空格,我们仍然可以拆分它。但结果会是什么?让我们检查一下:

mystring2 = “Thequickbrownfox.”

stringlist2 = mystring2.split()

stringlist2

type(stringlist2)

>[‘Thequickbrownfox.’]

><class ‘list’>

我们仍然得到一个列表,但这次只有一个元素。最终,在这种情况下拆分字符串并没有多大用处。

映射


映射是另一种内置类型。Python 中唯一可用的映射是字典。字典是基于键/值的。与基于索引的列表不同,我们不使用索引访问字典值。相反,我们使用键访问值。

创建字典类似于创建列表,除了添加键/值对而不是单个项目。这是一个例子:

mydictionary = {“item1”:45, “item2”:76, “item3”:145}

每个键/值由冒号分隔。第一部分是键,第二部分是值。在第一项中,item1是键,45是值。另外,请注意我们使用大括号而不是括号来包围我们的项目。

从字典中获取项目时,我们考虑的是键,因为通过索引访问是不可能的。如果我们想要item2,我们使用:

mydictionary[“item2”]

> 76

我们可以检查字典的长度,就像检查列表的长度一样:

len(mydictionary)

> 3

要更新item2,我们使用执行以下操作:

现在能在网上找到很多很多的学习资源,有免费的也有收费的,当我拿到1套比较全的学习资源之前,我并没着急去看第1节,我而是去审视这套资源是否值得学习,有时候也会去问一些学长的意见,如果可以之后,我会对这套学习资源做1个学习计划,我的学习计划主要包括规划图和学习进度表。

分享给大家这份我薅到的免费视频资料,质量还不错,大家可以跟着学习

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值