python——列表

欢迎关注小睿的微信公众号:郭小睿同学,每天更新小知识、笔记、案例、学习资源~
python——列表_第1张图片
Python中的列表跟我们在c、Java等语言中的一维数组很像~

spam = ["cat", "bat", "rat", "elephant"]

因此对于有编程基础的同学,掌握起来就很容易了~当然,你如果是初学者,也没什么问题,跟着小睿走下去,你也就很快可以掌握了,哈哈O(∩_∩)O哈哈~
在这里插入图片描述

用下标取得列表中的单个值

spam = ["cat", "bat", "rat", "elephant"]
print("hello " + spam[0])
print("hello " + spam[1])
print("hello " + spam[2])

数组的下标是从0开始的逐渐以单位1长度增长的。因此我们使用spam[0]取出来的值,就是cat
以此类推,我就不一一解释了。
在这里插入图片描述

负数下标

虽然下标时从0开始向上增长的,但是可以用负数作为下标哒。
整数值-1指的是列表中的最后一个下标,-2就是倒数第二个下标,以此类推。
在这里插入图片描述

spam = ["cat", "bat", "rat", "elephant"]
print("hello " + spam[-1])
print("hello " + spam[-2])
print("hello " + spam[-3])

程序输出

在这里插入图片描述

利用切片取得子列表

切片可以从列表中取得多个值,结果是一个新的列表。
python——列表_第2张图片

spam = ["cat", "bat", "rat", "elephant"]
print(spam[1:3])

程序输出

在这里插入图片描述

使用Len()获取列表的长度

spam = ["cat", "bat", "rat", "elephant"]
print(len(spam))

通过len()函数,将返回spam列表变量的长度:4。
在这里插入图片描述

用下标改变列表中的值

spam = ["cat", "bat", "rat", "elephant"]
spam[1] = "update"
print(spam)

我们通过spam[1]="update",就可以改变spam[1]位置的值。
在这里插入图片描述

程序输出

在这里插入图片描述

列表连接和列表复制

spam1 = ["cat", "bat", "rat", "elephant"]
spam2 = ["dog", "rabbit"]
print(spam1 + spam2)
print(spam1+spam1)

python——列表_第3张图片
通过操作符+我们就可以把两个列表拼接或者复制到一起。

使用del语句从列表中删除值

spam1 = ["cat", "bat", "rat", "elephant"]
del spam1[2]
print(spam1)

程序输出

在这里插入图片描述

使用列表

catNames = []
while True:
    print("输入猫的名字,如果没有什么要输入的,按回车结束。" + "当前有" + str(len(catNames)) + "个猫")
    name = input()
    if name == "":  # 如果输入为空,结束该层循环
        break
    catNames = catNames + [name]  # 列表连接

print("所有猫的名字叫")
for name in catNames:  # 遍历列表内容
    print(name)

程序剖析

catNames = catNames + [name]语句将我们输入的内容,拼接成一个列表。
继而使用for语句将catName列表中的内容遍历输出。
在这里插入图片描述

程序输出

python——列表_第4张图片

列表用于循环

spam1 = ["cat", "bat", "rat", "elephant"]
for i in range(len(spam1)):
    print("Index " + str(i) + ":" + spam1[i])

在这里插入图片描述
使用range(len(spam1))很方便。因为这样循环中的代码可以访问下标(变量i)以及下标处的值。

程序输出

在这里插入图片描述

in 和 not in 操作符

利用innot in操作符,可以确定一个值是否在列表中。
python——列表_第5张图片

spam = ["cat", "bat", "rat", "elephant"]

print("dog" in spam)
print("dog" not in spam)
print("cat" in spam)
print("cat" not in spam)

程序输出

在这里插入图片描述

多重赋值技巧

多重赋值技巧是一种快捷方式,可以让你在一行代码中,用列表中的值为多个变量赋值。

所以不必像这样!

cat = ["fat", "black"]
size = cat[0]
color = cat[1]
print(size, color)

而是输入下面的代码~

cat = ["fat", "black"]
size, color = cat
print(size, color)

注意:这里的变量数目和列表的长度必须严格相等,否则Python会报出ValueError!
在这里插入图片描述

程序输出

在这里插入图片描述
python——列表_第6张图片

使用index()方法在列表中查找值

通过index()方法即将返回的是查找到值的下标。

spam = ["hello", "hi", "howdy","hi"]
print(spam.index("hi"))
print(spam.index("h"))

如果该值不在列表中,Python就会报ValueError的值。
如果列表中存在重复的值,就会返回它第一次出现的下标。

使用append()和insert方法在列表中添加值

spam = ["cat", "dog", "cow"]
spam.append("moose")
print(spam)

程序输出

在这里插入图片描述
我们使用append()方法,会把我们需要添加的值添加到列表的末尾。
但是insert()方法,就比较牛皮了!它可以在列表的任意下标处插入一个值。

spam = ["cat", "dog", "cow"]
spam.insert(2, "moose")
print(spam)

程序输出

在这里插入图片描述

使用remove()方法从列表中删除值

spam = ["cat", "dog", "cow", "dog"]
spam.remove("dog")
print(spam)

我们使用remove()方法,删除一个在列表中不存在的值,就会导致ValueError错误。
如果一个值在列表中出现多次,我们调用remove()方法,也只会删除第一次出现的值。
在这里插入图片描述

使用sort()方法将列表中的值排序

spam = [2, 5, 1, -1, -2, -22, 7]
spam.sort()
print(spam)

程序输出

在这里插入图片描述
我们也可以指定reverse关键字参数为True,让sore()按逆向排序。

spam = [2, 5, 1, -1, -2, -22, 7]
spam.sort(reverse=True)
print(spam)

程序输出

在这里插入图片描述

spam = ["a", "v", "B", "c"]
spam.sort()
print(spam)

程序输出

在这里插入图片描述
因为sort()方法对字符串排序时,使用的是"ASCII"字符顺序,而不是实际的字典顺序。这就意味着大写字母在小写字母之前。因此在排序时,小写的a在大写的A之后。
如果需要按照普通的字典排序,我们就需要在调用sort()方法时,设置关键字参数key的值为str.lower

spam = ["a", "v", "B", "c"]
spam.sort(key=str.lower)
print(spam)

程序输出

在这里插入图片描述
这样将导致sort()方法将列表中所有的表项当成小写,实际上并不会改变他们的值。
在这里插入图片描述

类似列表的类型:字符串和元组

元组与列表主要区别在于,元组像字符串一样,是不可变的,元组的值不能被它们的值被修改、添加或删除。
如果元组中只有一个值,你可以在括号内该值的后面跟上一个括号,这样逗号就会告诉Python,这是一个元组。
你可以调用type()函数查看他们的类型。
在这里插入图片描述

print(type(("hello",)))
print(type(("hello")))

运行这段程序,输出如下:



在这里插入图片描述
你可以用元组告诉读代码的人,你不打算改变这个序列的值。使用元组的第二个好处在于,因为它们时不可变的,Python可以实现一些优化,让使用元组的代码比使用列表的代码更快。

用list()和tuple()函数来转换

正如str(42)将返回“42”,即整数42的字符串表示形式,函数list()和tuple()将返回传递给他们的值的列表和元组版本。

print(tuple(["cat", "dog", 5]))  # 传入列表,返回元组
print(list(("cat", "dog", 5,)))  # 传入元祖,返回列表
print(list("hello"))  # 传入字符串,返回列表

运行这段程序,输出如下:

('cat', 'dog', 5)
['cat', 'dog', 5]
['h', 'e', 'l', 'l', 'o']

在这里插入图片描述
这样如果需要元祖值的一个可变版本,将元组转换成列表就很方便。

你可能感兴趣的:(Python,我与python交朋友)