目录
一、遍历列表
和所有编程语言一样,首先可以考虑 for 循环
egs = [ 'aa', 'bb', 'cc' ]
for eg in egs:
print(eg)
定义了一个列表,并定义一个 for 循环,:对于(for)列表 egs 中的每位 eg,都打印(print)元素 eg。输出结果如下:
aa
bb
cc
然后再写一个稍微复杂点的 for 循环
magicians = ['alice', 'david', 'carolina']
for magician in magicians:
print(f"{magician.title()}, that was a great trick!")
print(f"I can't wait to see your next trick, {magician.title()}.\n")
print("Thank you, everyone. That was a great magic show!")
注意:Python 根据缩进来判断代码行与程序其他部分的关系
输出结果如下:
Alice, that was a great trick!
I can't wait to see your next trick, Alice.
David, that was a great trick!
I can't wait to see your next trick, David.
Carolina, that was a great trick!
I can't wait to see your next trick, Carolina.
Thank you, everyone. That was a great magic show!
在 for 循环后面,没有缩进的代码都只执行一次。
二、创建数值列表
列表非常适合用于存储数值集合,而 Python 提供了很多工具,可帮助你高效地处理数值列表。
1、range() 函数
for value in range(1, 5):
print(value)
输出结果:实际上不会打印 5
1
2
3
4
2、range() 创建数值列表
使用 list() 函数将 range() 的结果直接转换为列表。
numbers = list(range(1, 6))
print(numbers)
输出结果:
[1, 2, 3, 4, 5]
其实,range() 函数,可指定步长,只需再加第三个参数
even_numbers = list(range(2, 11, 2))
print(even_numbers)
输出结果:
[2, 4, 6, 8, 10]
有几个 Python 函数可帮助你处理数值列表:min(), max(), sum()。可以试试
3、列表推导式
squares = []
for value in range(1,11):
squares.append(value**2)
print(squares)
输出结果:
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
生成列表 squares 的方式包含三四行代码,而列表推导式让你只需编写一行代码就能生成这样的列表。列表推导式(list comprehension)将 for 循环和创建新元素的代码合并成一行,并自动追加新元素。
squares = [value**2 for value in range(1, 11)]
print(squares)
使用这种语法,首先指定一个描述性的列表名,如 squares。然后指定一个左方括号,并定义一个表达式,用于生成要存储到列表中的值。在这个示例中,表达式为 value**2,它计算平方值。接下来,编写一个 for 循环,用于给表达式提供值,再加上右方括号。在这个示例中,for 循环为 for value in range(1,11),它将值1~10 提供给表达式 value**2
注意:这里的 for 语句末尾没有冒号
三、使用列表的部分元素
处理列表的部分元素,在 Python 中称为切片(slice)
1、切片
创建切片,可指定要使用的第一个元素和最后一个元素的索引。与 range() 函数一样,Python 在到达指定的第二个索引之前的元素时停止。
players = ['aa', 'bb', 'cc', 'dd', 'ee']
print(players[0:3])
输出结果:
[ 'aa', 'bb', 'cc' ]
如果没有指定第一个索引,Python 将自动从列表开头开始。
players = ['aa', 'bb', 'cc', 'dd', 'ee']
print(players[:4])
输出结果:
[ 'aa', 'bb', 'cc', 'dd' ]
要让切片终止于列表末尾,也可使用类似的语法:
players = ['aa', 'bb', 'cc', 'dd', 'ee']
print(players[2:])
输出结果:
['cc', 'dd', 'ee']
负数索引返回与列表末尾有相应距离的元素,因此可以输出列表末尾的任意切片,如果要输出列表上最后三个元素,那么可以:
players = ['aa', 'bb', 'cc', 'dd', 'ee']
print(players[-3:])
['cc', 'dd', 'ee']
2、复制列表
my_foods = ['pizza', 'falafel', 'carrot cake']
friend_foods = my_foods[:]
print("My favorite foods are:")
print(my_foods)
print("\nMy friend's favorite foods are:")
print(friend_foods)
输出结果:
My favorite foods are:
['pizza', 'falafel', 'carrot cake']
My friend's favorite foods are:
['pizza', 'falafel', 'carrot cake']
如果只是将 my_foods 赋给 friend_foods,就不能得到两个列表,例如:
friend_foods = my_foods ## 这是不OK的
这种语法实际上是让 Python 将新变量 friend_foods 关联到已与my_foods 相关联的列表,因此这两个变量指向同一个列表。
四、元组
列表是可以修改的,但是,有时候需要创建一系列不可修改的元素。Python 将不能修改的值称为不可变的,而不可变的列表称为元组(tuple)。元组看起来很像列表,使用圆括号来标识。定义元组后,就可使用索引来访问其元素。
dd = (10, 20)
print(dd[0])
print(dd[1])
当你试图修改第一个元素的值,将会导致 Python 返回类型错误的消息。
注意:严格地说,元组是由逗号标识的,圆括号只是让元组看起来更整洁、更清晰。如果你要定义只包含一个元素的元组,必须在这个元素后面加上逗号:
mm = (1, )
创建只包含一个元素的元组通常没有意义,但自动生成的元组有可能只有一个元素。
虽然不能修改元组的元素,但可以给表示元组的变量赋值
dimensions = (200, 50)
dimensions = (400, 100)
## 元组变量重新赋值是合法的,只是将一个新元组关联到变量 dimensions
7859

被折叠的 条评论
为什么被折叠?



