Theory: Operations with list(理论:列表操作)

您已经知道如何创建列表(甚至是空列表),因此,您可能想以某种方式更改您的列表。列表有很多事情要做,您可以在Python 数据结构文档中阅读它们。在本主题中,我们将仅讨论基本操作。

添加一个元素

该列表是一个动态集合,这意味着您可以添加和删除元素。为了仔细观察,让我们创建一个空的龙列表。

dragons = []  # we do not have dragons yet

接下来是什么?首先想到的当然是向列表中添加新元素

要将新元素添加到现有列表的末尾,您需要使用该list.append(element)方法。它只需要一个参数,因此您一次只能将一个元素添加到列表中。

dragons.append('Rudror')
dragons.append('Targiss')
dragons.append('Coporth')

现在您有了三条龙,它们的顺序与您添加它们的方式相同:

print(dragons)  # ['Rudror', 'Targiss', 'Coporth']

添加几个元素

存在list.extend(another_list)将来自另一个可迭代对象的所有元素添加到列表末尾的操作。

numbers = [1, 2, 3, 4, 5]
numbers.extend([10, 20, 30])
print(numbers)  # [1, 2, 3, 4, 5, 10, 20, 30]

小心——如果你使用list.append(another_list)而不是list.extend(another_list),它会将整个列表添加为一个元素:

numbers = [1, 2, 3, 4, 5]
numbers.append([10, 20, 30])
print(numbers)  # [1, 2, 3, 4, 5, [10, 20, 30]]

或者,要合并两个列表,您可以将一个添加到另一个列表:

numbers_to_four = [0, 1, 2, 3, 4]
numbers_from_five = [5, 6, 7, 8, 9]
numbers = numbers_to_four + numbers_from_five 
print(numbers)  # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

如果您需要一个包含重复元素的列表,您可以使用重复模式创建一个列表,然后将其乘以任意数字。当您要创建具有相同值的特定长度的列表时,这特别有用:

pattern = ['a', 'b', 'c']
patterns = pattern * 3
print(patterns)  # ['a', 'b', 'c', 'a', 'b', 'c', 'a', 'b', 'c']

one = [1]
ones = one * 7
print(ones)  # [1, 1, 1, 1, 1, 1, 1]

移除元素

与添加元素的相反——删除它们——可以通过三种方式完成。让我们来看看它们。

首先,我们可以使用list.remove(element)操作。

dragons.remove('Targiss')
print(dragons)  # ['Rudror', 'Coporth']

如果我们要删除的元素在列表中出现多次,则仅删除该元素的第一个实例。

dragons = ['Rudror', 'Targiss', 'Coporth', 'Targiss']
dragons.remove('Targiss')
print(dragons)  # ['Rudror', 'Coporth', 'Targiss']

其他两种方法是通过索引而不是值本身来删除元素。关键字删除 Python 中的del任何类型的对象,因此可用于删除列表中的特定元素:

dragons = ['Rudror', 'Targiss', 'Coporth']
del dragons[1]
print(dragons)  # ['Rudror', 'Coporth']

最后,还有list.pop()方法。如果不带参数使用,它将删除并返回列表中的最后一个元素

dragons = ['Rudror', 'Targiss', 'Coporth']
last_dragon = dragons.pop()
print(last_dragon)  # 'Coporth'
print(dragons)      # ['Rudror', 'Targiss']

或者,我们可以指定要删除并返回的元素的索引:

dragons = ['Rudror', 'Targiss', 'Coporth']
first_dragon = dragons.pop(0)
print(first_dragon)  # 'Rudror'
print(dragons)       # ['Targiss', 'Coporth']

在指定位置插入元素

我们将学习如何把新元素添加到列表的末尾。如果我们想在中间添加一个新元素,我们使用list.insert(position, element)操作。第一个参数是要插入新元素的元素的索引;list.insert(0, element)将一个元素插入到列表的开头,list.insert(len(list), element)list.append(element)相同

这是一个例子:

years = [2016, 2018, 2019]
years.insert(1, 2017)           # [2016, 2017, 2018, 2019]
years.insert(0, 2015)           # [2015, 2016, 2017, 2018, 2019]
years.insert(len(years), 2020)  # [2015, 2016, 2017, 2018, 2019, 2020]

现在,您可以用有用的东西填充任何空列表!

列表中的成员资格测试

另一件非常有用的事情是检查列表中是否存在项目。它可以通过使用innot in运算符简单地完成:

catalog = ['yogurt', 'apples', 'oranges', 'bananas', 'milk', 'cheese']
 
print('bananas' in catalog)      # True
 
product = 'lemon'
print(product in catalog)        # False
print(product not in catalog)    # True

搜索特定元素

有时,只知道指定元素在列表中是不够的;我们可能想获得更多关于它的信息——元素在列表中出现了多少次以及在哪个位置。

该方法count()可以帮助获取存在的数量:

grades = [10, 5, 7, 9, 5, 10, 9]
print(grades.count(5))  # 2

我们可以使用该方法index() 来获取元素的位置。它查找列表中第一次出现 的元素的索引:

print(grades.index(7))   # 2
print(grades.index(10))  # 0

我们还可以指定搜索的间隔:list.index(element, start, end)

print(grades.index(9, 2, 5))  # 3

# if we don't specify the end of the interval, it automatically equals the end of the list
print(grades.index(10, 1))    # 5

注意——end索引不包含在区间中。

如果我们要查找的元素不在列表中,该方法将导致错误

print(grades.index(8))  # ValueError: 8 is not in list

我们对列表的基本操作的讨论已经结束。如果您需要更多信息,请查看Python 数据结构文档

概括

总而言之,在本主题中,我们学会了:

  • append()用;添加一个元素
  • extend()用;添加几个元素
  • remove()用;删除元素
  • insert()用;在指定位置插入一个元素
  • in使用and运算符检查元素是否在列表中not in
  • 用 ;计算一个元素在列表中出现的次数count()
  • 使用 获取列表中元素的位置index()

我们现在也知道,由于列表是动态集合,因此可以更改。无需不断创建新列表,这有利于程序的内存和性能。

### 回答1: 《小波理论:一种简明方法及其应用》是一本关于小波理论的教材。小波理论是一门研究信号分析和图像处理的数学工具,它可以有效地描述和分析信号的时频特性。本书作者使用了一种简单易懂的方法,详细介绍了小波理论的基本概念和原理,适合初学者阅读和学习。 该书主要分为几个部分。首先,介绍了小波的基本概念和数学表示,包括小波函数和小波变换的定义。然后,详细介绍了小波分析的基本原理,包括尺度变换和平移变换。接着,解释了小波变换的性质和算法,并给出了一些实际应用的例子,如信号压缩、图像处理和模式识别等。 该书的优点在于其简洁明了的讲解风格和书中实际应用的例子。作者通过逐步引入新概念和直观的示意图,帮助读者理解小波理论的核心思想。此外,书中还介绍了一些常用的小波函数和变换算法,方便读者实际应用中的操作。 《小波理论:一种简明方法及其应用》适用于数学、物理、工程等专业的本科生和研究生,以及对信号分析和图像处理感兴趣的科研工作者。它不仅为读者提供了一个全面了解小波理论的入门材料,而且还能够帮助读者在实际应用中掌握小波分析的基本方法和技巧。总的来说,本书是学习小波理论的一本优秀教材,推荐给对该领域感兴趣的读者阅读。 ### 回答2: 《小波理论:一种简单的方法与应用》是一本介绍小波理论的教材。小波理论是一种数学工具,用于分析和处理信号,广泛应用于信号处理、图像处理、模式识别等领域。这本教材从初级角度出发,以简单易懂的方式介绍了小波理论的基本原理和概念,并通过实际应用案例展示了小波理论在不同领域的应用。 教材的内容包括小波的定义、基本性质、小波变换、小波系数的计算方法等。通过详细解释和丰富的实例,读者可以理解小波分析的基本原理,并学会如何通过小波变换对不同类型的信号进行分析和处理。 此外,教材还介绍了一些实际应用领域,如图像压缩、信号降噪、模式识别等,并通过具体案例展示了小波理论在这些领域的应用。这样的实例可以帮助读者更好地理解理论,并将其应用于实际问题中。 总的来说,这本教材以其简单易懂的方式和丰富的实例,对小波理论进行了全面而深入的介绍,使读者能够理解和应用小波理论。无论是对于初学者还是已有一定了解的人来说,都是一本很好的学习参考书。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值