在刷力扣,我主要使用python编程。
如何利用编程语言提供的数据结构进行编程,和简化编程 是我们使用编程语言这个工具的基本用法。
在写前端时,主要使用javaScript完成逻辑代码的书写,后面也会有一篇文章来讲解javaScript提供的基本编程结构。
我们首先可以从括号类型的方式来认识python的数据结构,这里先讲解列表list
一、[ ]中括号 列表
列表无疑是python中最常见的数据结构。
列表的数据类型可以是python中的任意的对象,可以是字符串、数字、元组、列表等
而且,列表中的数据类型不要求是相同的。
list1 = ['physics', 'chemistry', 1997, 2000]
list2 = [1, 2, 3, 4, 5 ]
list3 = ["a", "b", "c", "d"]
我们将从增删改查4个角度来考虑对列表的操作。
首先我们来考虑如何创建一个空列表。
1.1创建空列表
两种方式:
l = list()
l = []
1.2向列表中添加元素(增)
例如使用append()方法来增加元素
list = [] ## 空列表
list.append('Google') ## 使用 append() 添加元素
list.append('Runoob')
print list
上述方法只能限于列表尾部
如何在列表任意位置进行添加元素呢,采用列表的insert()方法,
list.insert(index, obj) 代表在第index元素的位置,变成obj对象
week = ["Monday", "Tuesday", "Thursday", "Saturday", "Sunday"]
print(week)
week.insert(2, "Wednesday")
print(week)
1.3从列表中删除元素(删)
我们采用索引使用del语句来删除元素
list1 = ['physics', 'chemistry', 1997, 2000]
print list1
del list1[2]
print "After deleting value at index 2 : "
print list1
除此之外,还可以使用remove()方法
aList = [123, 'xyz', 'zara', 'abc', 'xyz'];
aList.remove('xyz');
1.4修改列表元素(改)
可以采用对索引元素赋值进行修改
week = ["Monday", "Tuesday", "Thursday", "Saturday", "Sunday"]
print(week)
week[2] = "fourday"
print(week)
1.5如何查找列表中的元素(查)
可以通过正反索引查找元素
>>>L = ['Google', 'Runoob', 'Taobao']
>>> L[2]
'Taobao'
>>> L[-2]
'Runoob'
还可以采用列表截取的方式:
list2 = [1, 2, 3, 4, 5, 6, 7 ]
print "list2[1:5]: ", list2[1:5] #输出[2, 3, 4, 5]
>>>L = ['Google', 'Runoob', 'Taobao']
>>> L[1:]
['Runoob', 'Taobao']
2、列表list的常见方法
2.1 pop()方法
pop()方法用于弹出列表中的最后一个元素,这种方法常和append()方法配合使用
并返回该元素的值
用法:
list.pop()
还有其他常见方法,用表格表示:
list.count(obj) | 统计某个元素在列表中出现的次数 |
list.reverse() | 反向列表中元素 |
list.sort() | 对原列表进行排序 |
list.index(obj) | 从列表中找出某个值第一个匹配项的索引位置 |
3、对于列表的常见函数
len(list) | 列表元素个数 |
max(list) | 返回列表元素最大值 |
min(list) | 返回列表元素最小值 |
list(seq) | 将元组转换为列表 |
4、如何遍历列表
在力扣刷题中,最常用的是遍历列表,常见以下几种方式:
(1)for循环直接遍历列表中的对象
week = ["Monday", "Tuesday", "Thursday", "Saturday", "Sunday"]
for i in week:
print("序号:%s 值:%s" % (week.index(i) + 1, i))
执行结果:
(2)采用range()函数产生列表索引的可迭代对象
用以下示例展示range()函数的使用方法:
>>>range(10) # 从 0 开始到 10
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> range(1, 11) # 从 1 开始到 11
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> range(0, 30, 5) # 步长为 5
[0, 5, 10, 15, 20, 25]
重要注解:并非返回一个列表,仍是返回一个可迭代对象
使用range函数遍历列表:
week = ["Monday", "Tuesday", "Thursday", "Saturday", "Sunday"]
for i in range(len(week)):
print("序号:%s 值:%s" % (i + 1, week[i]))
执行结果:
(3)采用enumerate()函数
enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标。
用以下示例展示enumerate()函数的使用方法:
seasons = ['Spring', 'Summer', 'Fall', 'Winter']
print(list(enumerate(seasons)))
print(list(enumerate(seasons, 1)))
注意:list()函数可将可迭代对象转换成链表
执行结果:
使用enumerate函数遍历列表:
week = ["Monday", "Tuesday", "Thursday", "Saturday", "Sunday"]
for i, val in enumerate(week):
print("序号:%s 值:%s" % (i + 1, val))
欢迎交流、指正!
参考博客: