Python3 简单列表EXP练习

  • A+
所属分类:Python篇

 

1、创建数字列表

可使用函数 list() 将 range() 的结果直接转换为列表。如果将 range() 作为 list() 的参数,输出将为一个数字列表。
要将这些数字转换为一个列表,可使用 list() :
numbers = list(range(1,6))
print(numbers)
结果如下:
[1, 2, 3, 4, 5]
使用函数 range() 时,还可指定步长。例如,下面的代码打印 1~10 内的偶数:
even_numbers = list(range(2,11,2))
print(even_numbers)
在这个示例中,函数 range() 从 2 开始数,然后不断地加 2 ,直到达到或超过终值( 11 ),因此输出如下:
[2, 4, 6, 8, 10]

2、列表解析

列表解析 将 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 语句末尾没有冒号。
结果:
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
要创建自己的列表解析,需要经过一定的练习,但能够熟练地创建常规列表后,你会发现这样做是完全值得的。当你觉得编写三四行代码来生成列表有点繁复时,就应考虑创建
列表解析了。

3、切片

可以处理列表的部分元素 ——Python 称之为 切片

要创建切片,可指定要使用的第一个元素和最后一个元素的索引。与函数 range() 一样, Python 在到达你指定的第二个索引前面的元素后停止。要输出列表中的前三个元素,需
要指定索引 0~3 ,这将输出分别为 0 、 1 和 2 的元素。

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

结果为:['charles', 'martina', 'michael']

你可以生成列表的任何子集,例如,如果你要提取列表的第 2~4 个元素,可将起始索引指定为 1 ,并将终止索引指定为 4 :
players = ['charles', 'martina', 'michael', 'florence', 'eli']
print(players[1:4])

结果为:['martina', 'michael', 'florence']

如果你没有指定第一个索引, Python 将自动从列表开头开始:
players = ['charles', 'martina', 'michael', 'florence', 'eli']
print(players[:4]

由于没有指定起始索引, Python 从列表开头开始提取:
结果为:['charles', 'martina', 'michael', 'florence']

要让切片终止于列表末尾,也可使用类似的语法。例如,如果要提取从第 3 个元素到列表末尾的所有元素,可将起始索引指定为 2 ,并省略终止索引:
players = ['charles', 'martina', 'michael', 'florence', 'eli']
print(players[2:])
Python 将返回从第 3 个元素到列表末尾的所有元素:
结果为:['michael', 'florence', 'eli']

无论列表多长,这种语法都能够让你输出从特定位置到列表末尾的所有元素。负数索引返回离列表末尾相应距离的元素,因此你可以输出列表末尾的任何切片。
例如,如果你要输出名单上的最后三名队员,可使用切片 players[-3:] :
players = ['charles', 'martina', 'michael', 'florence', 'eli']
print(players[-3:])

结果为:['michael', 'florence', 'eli']

遍历切片:

如果要遍历列表的部分元素,可在 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())
❶处的代码没有遍历整个队员列表,而只遍历前三名队员:
Here are the first three players on my team:
Charles
Martina
Michael
在很多情况下,切片都很有用。例如,编写游戏时,你可以在玩家退出游戏时将其最终得分加入到一个列表中。然后,为获取该玩家的三个最高得分,你可以将该列表按降序排
列,再创建一个只包含前三个得分的切片。处理数据时,可使用切片来进行批量处理;编写 Web 应用程序时,可使用切片来分页显示信息,并在每页显示数量合适的信息。

4、IF练习 so easy

来看一个根据年龄段收费的游乐场:
4 岁以下免费;
4~18 岁收费 5 美元;
18 岁(含)以上收费 10 美元。
如果只使用一条 if 语句,如何确定门票价格呢?下面的代码确定一个人所属的年龄段,并打印一条包含门票价格的消息:
age = 12
❶ if age < 4:
print("Your admission cost is $0.")
❷ elif age < 18:
print("Your admission cost is $5.")
❸ else:
print("Your admission cost is $10.")
❶处的 if 测试检查一个人是否不满 4 岁,如果是这样, Python 就打印一条合适的消息,并跳过余下的测试。❷处的 elif 代码行其实是另一个 if 测试,它仅在前面的测试未通过
时才会运行。在这里,我们知道这个人不小于 4 岁,因为第一个测试未通过。如果这个人未满 18 岁, Python 将打印相应的消息,并跳过 else 代码块。如果 if 测试和 elif 测试都
未通过, Python 将运行❸处 else 代码块中的代码。
在这个示例中,❶处测试的结果为 False ,因此不执行其代码块。然而,第二个测试的结果为 True ( 12 小于 18 ),因此将执行其代码块。输出为一个句子,向用户指出了门票
价格:
Your admission cost is $5.
只要年龄超过 17 岁,前两个测试就都不能通过。在这种情况下,将执行 else 代码块,指出门票价格为 10 美元。

测试多个条件
if-elif-else 结构功能强大,但仅适合用于只有一个条件满足的情况:遇到通过了的测试后, Python 就跳过余下的测试。这种行为很好,效率很高,让你能够测试一个特定的
条件。然而,有时候必须检查你关心的所有条件。在这种情况下,应使用一系列不包含 elif 和 else 代码块的简单 if 语句。在可能有多个条件为 True ,且你需要在每个条件为 True
时都采取相应措施时,适合使用这种方法。
下面再来看前面的比萨店示例。如果顾客点了两种配料,就需要确保在其比萨中包含这些配料:
toppings.py
❶ requested_toppings = ['mushrooms', 'extra cheese']
❷ if 'mushrooms' in requested_toppings:
print("Adding mushrooms.")
❸ if 'pepperoni' in requested_toppings:
print("Adding pepperoni.")
❹ if 'extra cheese' in requested_toppings:
print("Adding extra cheese.")
print("\nFinished making your pizza!")
我们首先创建了一个列表,其中包含顾客点的配料(见❶)。

❷处的 if 语句检查顾客是否点了配料蘑菇( 'mushrooms' ),如果点了,就打印一条确认消息。

❸处检查配料辣香肠( 'pepperoni' )的代码也是一个简单的 if 语句,而不是 elif 或 else 语句;因此不管前一个测试是否通过,都将进行这个测试。

❹处的代码检查顾客是否要求多加芝士( 'extra cheese' );不管前两个测试的结果如何,都会执行这些代码。每当这个程序运行时,都会进行这三个独立的测试。
在这个示例中,会检查每个条件,因此将在比萨中添加蘑菇并多加芝士:
Adding mushrooms.
Adding extra cheese.

Finished making your pizza!

5、字典

来看一个游戏,其中包含一些外星人,这些外星人的颜色和点数各不相同。下面是一个简单的字典,存储了有关特定外星人的信息:
alien_0 = {'color': 'green', 'points': 5}
print(alien_0['color'])
print(alien_0['points'])

字典 alien_0 存储了外星人的颜色和点数。使用两条 print 语句来访问并打印这些信息,如下所示:

green

5、

 

 

  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: