by_letter.setdefault(letter,[]).append(word)
#for word in words:
# letter = word[0]
# print(letter)
# if letter in by_letter:
# by_letter[letter] = [word]
#else:
# print(word)
# by_letter[letter].append(word)
# print("b")
web架构Django(python架构)
python有不断改良的库(pandas)
全局解释器锁(Global Interpreter Lock,GIL)这是一种防止解释器同时执行多条python字节码指令rame的机制。(单进程多线程系统来解决。)
python库:NumPy,是科学计算的基础包。在数据分析方面:作为算法之间传递数据的容器。对于数值型数据,NumPy数组在存储和处理数据时要比内置的python数据结构高效得多,此外,低级语言(比如C和Fortran)编写的库可以直接操作NumPy数组中的数据,无需进行任何数据复制工作。
Pandas库:提供了能让我们快速便捷的处理结构化数据的大量数据结构和函数。如:DataFrame,它是一个面向列的二维表结构,且含有行标和列标。
matplotlib库:绘制数据图表,
IPython库:科学计算标准工具集的组成部分,它将其他所有东西联系到一起,它为交互式和探索式计算提供了一个强而高效得环境。它主要用于交互式数据处理和利用matplotlib对数据进行可视化处理,
SciPy库:是一组专门解决科学计算中各种标准问题域的包的集合。NumPy和SciPy的有机结合完全可以替换MATLAB的计算功能
python字符串是不可变的,要修改它就必须创建一个新的。
你可以在字符串最左面引号的前面加上r,它表示所有字符应该按照原本的样子进行解释。
如:s=r' dfdfdfdfdfdfdfdfdf '
三元运算符:
a=5
"TRUE" if a>=0 else "FALSE"
列表:添加元素,insert的计算量要比append大,因为后续的引用必须被移动以便为新元素腾地方
列表的合并,是一种相当耗费资源的操作,因为必须创建一个新的列表并将所有的对象都复制过去,而用extend将元素附加到现有列表(尤其是在构建较大的列表是时 )就会好 很多。
二分搜索及维护有序列表:bisect.bisect()可以找出新元素应该被插入到那个位置才能保持原列表的有序性。而bisect.insort()则确实把新元素插入到那个位置上去 。
注意:bisect不会判断原列表是否是有序的,因为这样的开销太大了,因此,将他们用于无序列表虽然不会报错,但可能会导致不正确的结果。