python编程(从入门到实践)4章

2022-01-28  本文已影响0人  自由如风才是少年的梦

第四章 操作列表

遍历整个列表

magicians = ['alice','david','carolina']
for magician in magicians:
    print(magician)

执行

python3 magicians.py
alice
david
carolina
深入研究循环
for magician in magicians:
    print(magician)
for magician in magicians:
    print(magician)
for cat in cats:
for dog in dogs:
for item in list_df_items:
在fou循环中执行更多操作
magicians = ['alice','david','carolina']
for magician in magicians:
    print(f"{magician.title()},than was a great trick!")

执行

python3 magicians.py
Alice,than was a great trick!
David,than was a great trick!
Carolina,than was a great trick!
在for循环结束后执行一些操作
magicians = ['alice','david','carolina']
for magician in magicians:
    print(f"{magician.title()},than was a great trick!")
    print(f"I can't wait to see tour next trick,{magician.title()}.\n")
print("Thank you , ervryone. That was a great magic show!")
python3 magicians.py
Alice,than was a great trick!
I can't wait to see tour next trick,Alice.

David,than was a great trick!
I can't wait to see tour next trick,David.
Carolina,than was a great trick!
I can't wait to see tour next trick,Carolina.

Thank you , ervryone. That was a great magic show!

避免缩进错误

忘记缩进
忘记缩进额外的代码行
不必要的缩进
循环后不必要的缩进
遗漏了冒号

创建数值列表

使用函数range()
for value in range(1,5):
    print(value)

执行

python3 first_numbers.py
1
2
3
4
使用 rangge() 创建列表
numbers = list(range(1,6))
print(numbers)

执行

python3 first_numbers.py
[1, 2, 3, 4, 5]

打印1~10的偶数:

even_numbers = list(range(2,11,2))
print(even_numbers)

执行

python3 even_numbers.py
[2, 4, 6, 8, 10]

在Python 中,用两个星号(**)表示乘方运算。s

squares = []
for value in range(1,11):
    square = value ** 2
    squares.append(square)
print(squares)

为了让代码简洁,可以不使用临时变量square ,而直接将每个计算得到的值附加到列表末尾:

square = []
for value in range(1,11):
    squares.appends.(value**2)
print(squares)

执行

python3 squares.py
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
对数字列表执行简单的统计计算
digits = []
for value in range(0,11):
    digits.append(value)
sum_min = min(digits)
sum_max = max(digits)
sum_sum = sum(digits)

print(sum_min)
print(sum_max)
print(sum_sum)

这里介绍的知识也适用于包含数百万个数的列表。

列表解析

下面的示例使用列表解析创建在你面前看到的平方数列表:

squares = [value**2 for value in range(1,11)]
print(squares)

执行

python3 squares.py
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

使用列表的一部分

切片
players = ['charles','martina','michael','florence','eli']
print(players[0:3])

执行

python3  players.py
['charles', 'martina', 'michael']

如果没有指定第一个索引,python将自动从列表开头开始。

players = ['charles','martina','michael','florence','eli']
print(players[:4])

执行

python3  players.py
['charles', 'martina', 'michael', 'florence']

要将切片终止于列表末尾,也可使用类似的语法。

players = ['charles','martina','michael','florence','eli']
print(players[2:])

执行

['michael', 'florence', 'eli']

可在表示切片的方括号内指定第三个值。这个值告诉python在指定范围内每隔多少元素提取一个。

遍历切片

如果要遍历列表的部分元素,可在for循环中使用切片。下面的示例遍历前三个元素,并打印他们的名字。

players = ['charles','martina','michael','florence','eli']
print("Here are the first three players on my team:")
for player in players[:3]:
    print(player.title())

上述代码没有遍历整个元素列表,而只遍历前三个元素:

python3 players.py
Here are the first three players on my team:
Charles
Martina
Michael
复制列表

我们经常需要根据即有列表创建全新的列表。下面来介绍复制列表的工作原理,以及复制列表可提供极大帮助的一种情形。

   要复制列表,可创建一个包含整个列表的切片,方法是同时省略起始索引和终止索引( [:] )。这让python 创建一个始于第一个元素、终于最后一个元素的切片,即整个列表的副本。

例如,一个列表包含四个元素,而你想要创建一个新的列表,并在其中包含第一个列表的所有元素。因此你可以通过复制来创建这个列表。

my_foods = ['pizza','falafel','carrot cake']
firend_foods = my_foods[:]
print(my_foods)

print(firend_foods)

执行

python3 foods.py
['pizza', 'falafel', 'carrot cake']
['pizza', 'falafel', 'carrot cake']

为核实确实有两个列表,下面在每个列表中都添加一个元素

my_foods = ['pizza','falafel','carrot cake']
firend_foods = my_foods[:]

my_foods.append('cannoli')
firend_foods.append('ice cream')

print(my_foods)
print(firend_foods)

执行

python3 foods.py
['pizza', 'falafel', 'carrot cake', 'cannoli']
['pizza', 'falafel', 'carrot cake', 'ice cream']

元组

定义元组

元组看起来很像列表,但使用圆括号而非中括号来标识。定义元组后,就可使用索引来访问其元素,就像访问列表元素一样。

有一个大小不应改变的矩形,可将其长度和宽度存储在一个元组中,从而确保它们是不能修改的:

dimensions = (200,50)
print(dimensions[0])
print(dimensions[1])

执行

python3 dimensions.py
200
50

在进行尝试修改元组dimensions 的第一个元素,看看结果如何

dimensions = (200,50)
dimensions[0] = 250
print(dimensions[0])

执行

python3 dimensions.py
Traceback (most recent call last):
  File "dimensions.py", line 2, in <module>
    dimensions[0] = 250
TypeError: 'tuple' object does not support item assignment

严格来说,元组是由逗号标识的,圆括号只是让元组看起来更整洁、更清晰。如果你要定义一个元素的元组,必须在这个元素后面加上逗号;

my_t = (3,)

创建只包含一个元素的元组通常没有意义,但自动生成的元组有可能只有一个元素。

遍历元组中的所有值

像列表一样,也可以使用for循环遍历元组中的所有值:

dimensions = (200,50)
for dimenesion in dimensions:
    print(dimenesion)

执行

python3 dimensions.py
200
50
修改元组变量

虽然不能修改元组的元素,但可以给存储元组赋值。因此,如果要修改前述矩形的尺寸,可重新定义整个元组:

dimensions = (200,50)
print("Original dimesions:")
for dimension in dimensions:
    print(dimension)

dimensions = (400,100)
print("\nModifed dimensions")
for dimension in dimensions:
    print(dimension)

这样,Python 不会引发任何错误,因为给元组变量重新赋值是合法的:

python3 dimensions.py
Original dimesions:
200
50

Modifed dimensions
400
100

相对于列表,元组是更简单的数据结构。如果需要存储的一组值在程序的整个生命周期都不变,就可以使用元组。

设置代码格式

格式设置指南 缩进 行长

空行

空行不会影响代码的运行,但会影响代码的可读性。Python 解释器根据水平缩进情况来解读代码,但不关心垂直间距。


☺欢迎一起来学习交流!

上一篇下一篇

猜你喜欢

热点阅读