新2019计划:python学习-列表【1】
新年伊始,2019来的比想象中要早很多,随着时间的流逝,发现很多学习的东西不系统化,总是一知半解,有时候感觉很多知识都不是自己的,都要反复查看资料才能完成工作中的任务。为此,打算利用业余时间复习式的学习和记录并总结,希望能够弥补知识的不足,同时加强自己的动手和编程能力。
下面打算花费100天时间,主要弥补以下知识体系:
1、python基础知识掌握,系统化了解python的编程技巧,打算利用书籍《python编程:从入门到实际这本书》以及网络上有关python的小项目入手。时间安排打算15天。
2、机器学习掌握,打算重读周志华那边西瓜书,以及李航的《统计学习方法》和数据挖掘导论,针对常见的算法原理学会理解和公式能够推导,并利用sklean工具学会运用编写。可以结合GitHub上的很多开源机器学习资料去以及吴恩达机器学习课程去学习,时间安排60天左右。
3、深度学习知识掌握,理解常见的深度学习模型原理即可,有多余时间实践下。时间待定。
4、自然语言处理相关知识了解。
列表
列表定义:
一系列按特定顺序排列的元素组成,其中元素之间可以没有任何关系,一般给列表指定一个表示复数的名称,例如:
bicycles = ['trek', 'cannondale', 'redline', 'specialized']
列表知识点:
1、访问列表元素
通过索引访问,例:bicycles[0]表示列表的第一个元素,bicycles[1]表示列表第二个元素……
负数索引表示倒数访问列表元素,例:bicycles[-1]表示列表倒数第一个,bicycles[-2]倒数第二个……
2、列表方法
motorcycles = ['honda', 'yamaha', 'suzuki']
- 修改列表元素
motorcycles[0] = 'ducati'
那么列表motorcycles第一个元素发生改变 - 在列表中添加元素
motorcycles.append('ducati')
append方法将新增元素放在列表末尾。
motorcycles.insert(1, 'ducati')
insert方法将新增元素放在索引为1的位置,那么原索引1和其后面元素都向右移一个位置。 - 列表中删除元素
del motorcycles[0]
del删除了列表motorcycles中的第一个元素.
motorcycles.pop(2)
pop()来删除列表中任何位置的元素,只需在括号中指定要删除的元素的索引即可,并返回删除的元素值。
motorcycles.remove('ducati')
remove()从列表中删除指定的元素值,这个元素值必须存在,否则会报错。当出现多个相同元素值时,只会删除第一个出现的,如果要删除出现多次的元素值,就需要用循环判断是否删除这样的值了。 - 列表排序
cars = ['bmw', 'audi', 'toyota', 'subaru']
cars.sort(reverse=True)
sort()方法永久性修改列表元素的排列顺序,无法恢复原来排列顺序。
sorted(cars,reverse=True)
sorted()能够按特定顺序显示列表元素,同时不影响它们在列表中的原始排列顺序。也就是不改变原来的列表顺序。 - 倒着打印列表
cars.reverse()
reverse()不是指按与字母顺序相反的顺序排列列表元素,而只是反转列表元素的排 列顺序,永久性地修改列表元素的排列顺序。 - 列表长度
cars = ['bmw', 'audi', 'toyota', 'subaru']
len(cars)
注意:使用列表一定要避免索引的错误。
IndexError: list index out of range
3、操作列表
- 遍历整个列表
# 遍历列表,相当于依次从列表中取出一个元素赋值给magician,然后打印出来
magicians = ['alice', 'david', 'carolina']
for magician in magicians:
print(magician)
# for循环中执行更多的操作
magicians = ['alice', 'david', 'carolina']
for magician in magicians:
print(magician.title() + ", that was a great trick!")
# for循环结束之后执行一些操作
magicians = ['alice', 'david', 'carolina']
for magician in magicians:
print(magician.title() + ", that was a great trick!")
print("Thank you, everyone")
- 创建数值列表
range(start,end,step)方法, 默认步长step=1
range(1, 8, 2)表示1到8的数字,步长为2,结果是[1, 3, 5, 7] - 对数字列表执行简单的统计计算
digits = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
min(digits)
max(digits)
sum(digits)
-
列表解析
squres = [value**2 for value in range(1,11)] -
切片
players = ['charles', 'martina', 'michael', 'florence', 'eli']
print(players[1:4])
print(players[-3:]) -
遍历切片
players = ['charles', 'martina', 'michael', 'florence', 'eli']
for player in players[:3]:
print(player.title())
- 复制列表
my_foods = ['pizza', 'falafel', 'carrot cake']
# 复制列表
friend_foods = my_foods[:]
# 如果这样复制赋值列表,相当于my_foods和friend_foods引用相同的内存空间,一个变动,另一个也变动
friend_foods = my_foods