小李飞刀:飞呀飞呀python的骄傲放纵

小小唠叨几句

这几天都没有更新,不表明我没有学习吖!
这两天都在忙着半夜,终于有了本身的小窝,一直住家里,忽然搬出来心情还满奇特的。
虽然还在一个城市里,可是感受有了更多的本身的时间。
好比如今是晚上十点,在家的话可能还有不少吵吵嚷嚷的声音(家里人口比较多),如今就本身安静的敲敲字学习什么的。
恩,仍是要好好学习,记念下搬出来后的第一次学习!
平安夜快乐!app

开始认真学习!

先好好整理下这几天学习的成果,这几天在手机上持续看的教程,其实看的也很少啦,那就当温故而知新啦~
上一回合看完了函数,这几天认真看了下Python的高级特性函数

切片

取list或者tuple里面的部分值是很常见的操做。
可是有土办法也有聪明的办法。
土办法就是我挨个去写index的值呗。学习

print(list[0],list[1],list[2])

聪明一点,让咱们来用循环。测试

r = []
n = 3
for i in range(n):
    r.append(L[i])

循环其实也很麻烦,因此Python提供了Slice切片操做符。spa

L[0:3] #这样就完成了前三项的选取

index索引有不少优秀的用法3d

  • 当第一个索引为0的时候,就能够简略不写
L[:3]
  • 支持倒数切片,注意,倒数第一个元素的索引是-1
L[-2:]
  • 什么都不写的时候,显示整个list
L[:]
  • tuple也是list,因此也支持切片操做,操做结果为tuple,即不可变
  • 字符串也能够看作list,支持切片操做,操做结果为字符串
  • 本身作了一点无聊的小测试

clipboard.png

clipboard.png

clipboard.png

迭代

若是给定一个list或tuple,咱们能够经过for循环来遍历这个list或tuple,这种遍历咱们称为迭代(Iteration)。

其实刚开始写Python的时候很是不习惯,由于以前经常使用的C++,PHP,JS都是用下标来表示数据的位置,而后完成迭代。
因此更高级的抽象化是须要逐步适应的。code

只要是可迭代对象,不管有无下标,均可以迭代,好比dict就能够迭代。
>>> d = {'a': 1, 'b': 2, 'c': 3}
>>> for key in d:
...     print(key)
...
a
c
b

只要是可迭代的朋友,for就能生效,emmm,可是首先,咱们要确认这个朋友,它真的能够迭代吗?对象

>>> from collections import Iterable
>>> isinstance('abc', Iterable) # str是否可迭代
True
>>> isinstance([1,2,3], Iterable) # list是否可迭代
True
>>> isinstance(123, Iterable) # 整数是否可迭代,这个朋友没法迭代
False

而后对于下标循环,也是有一套解决方案的。blog

Python内置的enumerate函数能够把一个list变成索引-元素对,这样就能够在for循环中同时迭代索引和元素自己。
>>> for i, value in enumerate(['A', 'B', 'C']):
...     print(i, value)
...
0 A
1 B
2 C

for循环里,同时引用两个变量,在Python里是很常见的教程

>>> for x, y in [(1, 1), (2, 4), (3, 9)]:
...     print(x, y)
...
1 1
2 4
3 9

最后,作个做业

clipboard.png
困到真的要起飞啦,明天再继续咯~
恩,Python真有意思~
但愿2019年能够顺利过上写Python为主的生活。

PS:最近已经开始刷leetcode啦,受小伙伴感染,后续也会开始写习题本啦~

相关文章
相关标签/搜索