第二十六天
1.主题:python列表+元组+集合+字典官网文档复习
Data Structures
https://docs.python.org/3/tutorial/datastructures.html
2.摘要
对比总结:官网文档的零碎技巧收集
#1. m[len(m) : ] = [x ] <==>m.insert(len(m), x) <==>m.append() 列表末未添加数据的3种方法,比如
>>> m = [1, 2, 3]
>>> x = 5
>>> m[len(m) : ] = [x]
>>> m
[1, 2, 3, 5]
>>> m.insert(len(m), x)
>>> m
[1, 2, 3, 5, 5]
>>> m.append(x)
>>> m
[1, 2, 3, 5, 5, 5]
>>>
#2.m.remove(x) —>掐头 去尾 <— m.pop(i)
x是被掐去的首次露头的x,必须填写这个元素;
i是被踢出元素的索引位置,不填写就是末位淘汰制,填写就是制定被裁员;比如
>>> m = [1, 3, 5, 1, 3, 5, 1, 3, 5]
>>> m.remove(5)
>>> m
[1, 3, 1, 3, 5, 1, 3, 5] #被裁减的是队伍前头第一次出现的5
>>> m.pop()
5
>>> m #此时pop括号内无参数,被裁减的是队伍末尾的5
[1, 3, 1, 3, 5, 1, 3]
>>> m.pop(5)
1
>>> m #此时pop括号参数师,但不是元素,而是索引为5号的元素1
[1, 3, 1, 3, 5, 3]
>>> m.remove() #remove()忘记添加必选参数,报错是必然的
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: remove() takes exactly one argument (0 given)
>>>
#3.比较sort() 与 sorted()
sort(key=None, reverse=False)
sorted(iterable, *, key=None, reverse=False)
共同点:均可叠加reverse排序
不同点:
①.sort()不必带参数,源数据改序,sort()类似浅拷贝,输出新序列,老序列保持;
②.sort()进队列表排序,sorted()对一切iterable可迭代数据排序;
③.sortted()可以连续使用,多次根据不同参数排序;比如
>>> m = [9, 3, 8, 1, 10, 2, 5]
>>> m.sort()
>>> m #sort挖苗断根,m旧貌不再
[1, 2, 3, 5, 8, 9, 10]
>>> m = [9, 3, 8, 1, 10, 2, 5]
>>> sorted(m)
[1, 2, 3, 5, 8, 9, 10] #sorted()输出新序列
>>> m #同时老序列保持股风貌,依然原汁原味
[9, 3, 8, 1, 10, 2, 5]
>>> d = {5: 'blue', 2: 'red', 4: 'green’, 1: 'black'}
>>> sorted(d) #sorted()对字典keys排序,用sort()则报错
[1, 2, 4, 5]
④.list视同stack,即last-in, first-out,用append添尾,用pop减尾;
#4.列表解析list comprehensions就是牛啊!!直接抹平内部括号:
# flatten a list using a listcomp with two 'for' 双轮for循环强拆内部隔离墙!!!
>>> z = [(x, y) for x in [1, 2, 3] for y in [3, 1, 4] if x != y]
>>> z #对数列中的元组进行抹平
[(1, 3), (1, 4), (2, 3), (2, 1), (2, 4), (3, 1), (3, 4)]
>>> u = [x for y in z for x in y]
>>> u
[1, 3, 1, 4, 2, 3, 2, 1, 2, 4, 3, 1, 3, 4]
>>> l
[[2, 9, 3], [2, 9, 3, 2, 9, 3, 2, 9, 3], [2, 9, 3, 2, 9, 3]]
>>> v = [x for y in l for x in y] #对数列中的数列进行抹平
>>> v
[2, 9, 3, 2, 9, 3, 2, 9, 3, 2, 9, 3, 2, 9, 3, 2, 9, 3]
#5.对于可迭代序列iterable,可以用enumerate()打印其索引号与对应元素,比如
>>> d = {'spring': 1, 'summer': 2, 'autumn': 3, 'winter': 4}
>>> for i, x in enumerate(d):
... print(i, x)
...
0 spring
1 summer
2 autumn
3 winter
3.心得感悟
A.复习字典列表是为了更好的处理数字与字符串,做一些强化记忆;
B.先预览数据分析的两个模块:Numpy与Pandas,做大纲式的了解,至少心中有数,现在看来,pandas是我想要的,就是处理Excel白哦个的行情数据,达到可视化;
C.爬虫技术这次是按照博客系列学习,是系统化的学习,期间夹杂了HTML、HTTP等额外知识,说实话,比我想象的麻烦多了,但还是要补充这些,才能吧网页解析看的更明白;
4.时间统计
昨日阅读5小时,累计235小时