欢迎关注小睿的微信公众号:郭小睿同学
,每天更新小知识、笔记、案例、学习资源~
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])
spam = ["cat", "bat", "rat", "elephant"]
print(spam[1:3])
spam = ["cat", "bat", "rat", "elephant"]
print(len(spam))
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)
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列表中的内容遍历输出。
spam1 = ["cat", "bat", "rat", "elephant"]
for i in range(len(spam1)):
print("Index " + str(i) + ":" + spam1[i])
使用range(len(spam1))
很方便。因为这样循环中的代码可以访问下标
(变量i)以及下标处的值。
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!
通过index()方法即将返回的是查找到值的下标。
spam = ["hello", "hi", "howdy","hi"]
print(spam.index("hi"))
print(spam.index("h"))
如果该值不在列表中,Python就会报ValueError
的值。
如果列表中存在重复的值,就会返回它第一次出现
的下标。
spam = ["cat", "dog", "cow"]
spam.append("moose")
print(spam)
我们使用append()
方法,会把我们需要添加的值添加到列表的末尾。
但是insert()
方法,就比较牛皮了!它可以在列表的任意下标处插入一个值。
spam = ["cat", "dog", "cow"]
spam.insert(2, "moose")
print(spam)
spam = ["cat", "dog", "cow", "dog"]
spam.remove("dog")
print(spam)
我们使用remove()
方法,删除一个在列表中不存在的值,就会导致ValueError
错误。
如果一个值在列表中出现多次,我们调用remove()
方法,也只会删除第一次出现
的值。
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可以实现一些优化,让使用元组的代码比使用列表的代码更快。
正如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']