python

超轻量级php框架startmvc

Python学习笔记之列表和成员运算符及列表相关方法详解

更新时间:2020-07-26 08:24:02 作者:startmvc
本文实例讲述了Python学习笔记之列表和成员运算符及列表相关方法。分享给大家供大家参考

本文实例讲述了Python学习笔记之列表和成员运算符及列表相关方法。分享给大家供大家参考,具体如下:

列表和成员运算符

列表可以包含我们到目前为止所学的任何数据类型并且可以混合到一起。


lst_of_random_things = [1, 3.4, 'a string', True] # 这是一个包含 4 个不同类型元素的列表
print(lst_of_random_things[0]) # 1

获取上述列表的第一个值和最后一个值


print(lst_of_random_things[0]) # 1
print(lst_of_random_things[len(lst_of_random_things) - 1]) # True

此外,你可以使用负数从列表的末尾开始编制索引,其中 -1 表示最后一个元素,-2 表示倒数第二个元素,等等


print(lst_of_random_things[-1]) # True
print(lst_of_random_things[-2]) # a string

列表切片的应用: 我们可以使用切片功能从列表中提取多个值。在使用切片功能时,务必注意,下限索引包含在内,上限索引排除在外, 最终返回的是一个新的列表

正常的用法:


lst_of_random_things = [1, 3.4, 'a string', True]
print(lst_of_random_things[1:2]) # [3.4]

从列表的开头开始,也可以省略起始值


lst_of_random_things = [1, 3.4, 'a string', True]
print(lst_of_random_things[:2]) # [1, 3.4]

要返回到列表结尾的所有值,可以忽略最后一个元素


lst_of_random_things = [1, 3.4, 'a string', True]
print(lst_of_random_things[1:]) # [3.4, 'a string', True]

在列表里还是不在列表里?关键字 in 和 not in 返回一个布尔值, 表示某个元素是否存在于列表中,或者某个字符串是否为另一个字符串的子字符串


print('this' in 'this is a string') # True
print('in' in 'this is a string') # True
print('isa' in 'this is a string') # False
print(5 not in [1, 2, 3, 4, 6]) # True
print(5 in [1, 2, 3, 4, 6]) # False

列表的可变性和顺序

可变性是指对象创建完毕后,我们是否可以更改该对象。如果对象(例如列表或字符串)可以更改,则是可变的。但是,如果无法更改对象以创建全新的对象(例如字符串),则该对象是不可变的。

列表可变性测试:


my_lst = [1, 2, 3, 4, 5]
my_lst[0] = 'one'
print(my_lst) # ['one', 2, 3, 4, 5]

下面尝试修改字符串:


greeting = "Hello there"
greeting[0] = 'M'

尝试修改字符串,引发如下错误:

Traceback (most recent call last):   File "<stdin>", line 1, in <module> TypeError: 'str' object does not support item assignment

但可以修改字符串对象的地址:


greeting = "Hello there"
greeting = 'Hi there'
print(greeting) # Hi there

本节注意事项:对于你要使用的每种数据类型,你都需要注意两个事项:可变吗?有序吗?

列表和成员运算符[相关练习]

请使用列表索引根据整型变量 month 判断特定月份有多少天,并将该值存储在整型变量 num_days 中


month = 8
days_in_month = [31,28,31,30,31,30,31,31,30,31,30,31]
# use list indexing to determine the number of days in month
num_days = days_in_month[month - 1]
print(num_days)

请使用列表切片记法从此列表中选择列表中的最后三个元素。提示:切片可以使用负索引!


eclipse_dates = ['June 21, 2001', 'December 4, 2002', 'November 23, 2003',
 'March 29, 2006', 'August 1, 2008', 'July 22, 2009',
 'July 11, 2010', 'November 13, 2012', 'March 20, 2015',
 'March 9, 2016']
# TODO: Modify this line so it prints the last three elements of the list
print(eclipse_dates[-3:])

列表的常用方法

常用方法举例

  • len() 返回列表中的元素数量。
  • max() 返回列表中的最大元素。最大元素的判断依据是列表中的对象类型。数字列表中的最大元素是最大的数字。字符串列表中的最大元素是按照字母顺序排序时排在最后一位的元素。因为 max() 函数的定义依据是大于比较运算符。如果列表包含不同的无法比较类型的元素,则 max() 的结果是 undefined。
  • min() 返回列表中的最小元素。它是 max() 函数的对立面,返回列表中的最小元素。
  • sorted() 返回一个从最小到最大排序的列表副本,并使原始列表保持不变。
  • join() 将字符串列表作为参数,并返回一个由列表元素组成并由分隔符字符串分隔的字符串。
  • append() 实用方法 append() 会将元素添加到列表末尾。

方法实践举例之join()


new_str = "\n".join(["fore", "aft", "starboard", "port"])
print(new_str)

输出: 在此示例中,我们使用字符串 “\n” 作为分隔符,以便每个元素之间都有一个换行符。我们还可以在 .join 中使用其他字符串作为分隔符。以下代码使用的是连字符。


fore
aft
starboard
port

or


name = "-".join(["García", "O'Kelly"])
print(name)

输出:

García-O'Kelly

方法实践举例之append()


letters = ['a', 'b', 'c', 'd']
letters.append('z')
print(letters)

输出:

['a', 'b', 'c', 'd', 'z']

列表的常用方法[相关练习]

以下代码的输出是什么?


a = [1, 5, 8]
b = [2, 6, 9, 10]
c = [100, 200]
print(max([len(a), len(b), len(c)])) # 4
print(min([len(a), len(b), len(c)])) # 2

以下代码的输出是什么?


names = ["Carol", "Albert", "Ben", "Donna"]
print(" & ".join(sorted(names))) # Albert & Ben & Carol & Donna

以下代码的输出是什么?


names = ["Carol", "Albert", "Ben", "Donna"]
names.append("Eugenia")
print(sorted(names)) # ['Albert', 'Ben', 'Carol', 'Donna', 'Eugenia']

Python 列表 成员运算符