全民学习Python?你应该有10个Python小技巧。
一千个读者心中有一千个哈姆雷特,要问一千个程序员“什么是最好的语言”,Java、Python、PHP、C++而且还有自己的位置。但是要问编程语言流行指数之王非,那真的非Python莫属。
根据StackOverflow数据,Python是编程语言中使用最快的语言。
根据福布斯最新发布的一份报告,去年python的使用量增长了456%。Netfix、Python被用于IBM和其他数百家公司。python也是由python创建的,包括Dropbox。
根据Dice的研究,python是世界上最受欢迎的技术之一,python也是编程语言中最受欢迎的一种。
为什么Python有这么大的魅力?
因为,与其他编程语言相比,Python具有以下五个优点:
1、兼容主流平台,操作系统。
2、包含很多开源框架和工具。
3、编码具有可读性和可维护性
4、强大的标准库
5、开发标准测试驱动力
Python越来越受欢迎,因为它的学习门槛低,发展前景广阔。今天,小芯将继续为您带来10个关于python非常有用的代码提示,帮助您完成日常工作。请注意检查和学习~
Python10个小技巧
使用ZIP处理列表
假定要合并相同长度的列表并打印结果。使用zip()函数获得想要的结果也有一个比较常见的方法,代码如下:
countries=['France','Germany','Canada']
capitals=['Paris','Berlin','Ottawa']
forcountry,capitalinzip(countries,capitals):
print(country,capital)#FranceParis
GermanyBerlin
CanadaOttawa
使用pythoncollections
Pythoncollections是一种容器数据类型,即列表、集合、元组和字典。Collections模块提供了一种高性能的数据类型,可以增强代码,使工作更简单、更容易。
下面使用Counter()函数进行演示,还提供了许多功能。
Counter()函数使用可迭代对象(如列表或元组),并返回Counter字典。字典键是迭代器中唯一存在的元素,每个键的值是迭代器中出现次数的计数。
为了创建一个Counter对象,向Counter()函数传输一个迭代(列表),代码如下。
fromcollectionsimportCountercount=Counter(['a','b','c','d','b','c','d','b'])
print(count)#Counter({'b':3,'c':2,'d':2,'a':1})
使用itertools
Python的itertools模块是一个工具集,用于处理迭代器。Itertools包含多种工具,用于生成可迭代的输入数据结果。以下是itertools.combinations()为例。
itertools.combinations()用于构建组合。这是一个可能的输入组合项。
在现实中举一个例子来阐明上述观点:
假设一场锦标赛有四支球队,在联赛阶段,每支球队都要和每支球队进行比赛。任务是列出所有球队的可能组合。
代码如下:
importitertools
friends='Team1','Team2','Team3','Team4''
list(itertools.combinations(friends,r=(Team1,Team2),(Team1,Team3),(Team1,Team4),(Team2,Team3),(Team2,Team3),(Team2,Team4),(Team3,Team4)
值的顺序不重要,需要注意。由于('Team1','Team2')和('Team2','Team1')代表同一对,因此输出列表只需包含其中一个。类似的,可以使用itertools.permutations()以及其它来自该模块的函数。
如果您需要更完整的参考资料,请参考本教程。
从函数中返回多个值
Python可以从函数调用中返回多个值,这是很多其他流行编程语言所没有的功能。在这种情况下,返回值应该是逗号分隔的值列表,然后python构建一个元组并返回给调用者。代码示例如下:
defmultiplication_division(num1,num2):
num1/num2,returnnum1*num2product,division=multiplication_division(15,3)
print("Product=",product,"Quotient=",division)#Product=5.05Quotient
使用列表推导式
列表推导式用于从其他可迭代对象中创建新列表。当列表推导式返回列表时,它由包含表达式的方括号组成,该表达式用于for循环执行每个元素和用于循环遍历每个元素。
列表推导速度更快,因为它优化了python解释器,并且可以在循环中找到可预测的模式。
下面,用列表推导式计算前五个整数的平方:
m=[x**2forxinrange(5)
print(m)#[0,1,4,9,16]
例如,使用列表推导来查找两个列表中的公共数字。
list_a=[1,2,3,4]
list_b=[2,3,4,5]
common_num=[aforainlist_aforbinlist_bifa==b]
print(common_num)#[2,3,4]
把两个列表转换成一个字典
假设有两个列表,一个是学生的名字,另一个是学生的分数。使用zip函数将这两个列表转换成字典,代码如下:
students=["Peter","Julia","Alex"]
marks=[84,65,77]
dictionary=dict(zip(students,marks))
print(dictionary)#{'Peter':84,'Julia':65,'Alex':77}
字符串拼接
拼接字符串时,可以通过for循环逐一添加元素,但效率很低(尤其是列表很长的时候)。在python中,字符串是不可改变的,因此在拼接字符串时,必须将左右字符串复制到新的字符串中。
使用join()函数的更好方法如下:
characters=['p','y','t','h','o','n']
word="".join(characters)
print(word)#python
使用sorted()函数
内置函数sorted()在python中可以很容易地对任何序列进行排序,它可以完成许多困难的工作。sorted()可以对任何序列(列表、元组)进行排序,并返回已排序的元素列表。以下是对数字的升序排列:
sorted[1,2,3,4,4,5][3,5,2,1,4]
下面是对字符串的降序排列:
sorted(['france','germany','canada','india','china'],reverse=True)#['india','germany','france','china','canada']
9.用enumerate()迭代
Enumerate()将计数器添加到可迭代对象中,并以枚举对象的形式返回。
下面是一个经典的编码面试问题(通常被称为FizzBuzz问题)。
在列表中编写一个程序来打印数字。如果数字是3的倍数,输出“fizz”;倍数为5,输出"buzz”;既是3又倍数为5,输出"fizzbuzz”。
numbers=[30,42,28,50,15]
fori,numinenumerate(numbers):
ifnum%=0andnum%5=0=:
numbers[i]='fizzbuzz'
elifnum%3==0:
numbers[i]='fizz'
elifnum%5==0:
numbers[i]='buzz'
print(numbers)#['fizzbuzz','fizz',28,'buzz','fizzbuzz']
使用pythongenerators(生成器)
generator函数允许创建类似迭代器的函数。它们允许程序员以简单快捷的方式创建迭代器。以下是一个例子来解释这个概念。
假定从1开始就要求和前1000000个完全平方数。
看上去很容易吧?使用列表推导可以很容易地做到这一点,但它的输入量太大了。以下是一个例子:
t1=time.cloc
以下是小编精心整理的全民一起玩python课程目录,希望对您有所帮助:
00书到深处真如铁,今迈步从头越
01集成化环境面面俱到,Pycharm软件无所不包
02模块导入先运行,巧用name规范主宾
提高篇结语:学问不可有遗力,编程功夫今始成
第一部分上:数据类型与语法细节
第一部分下:深入理解各种容器
第二部分:字符串与正则表达式
第三部分:面向对象原理与语法
第四部分:理解函数与函数式编程
视频教程截图:
| 全民一起玩python 提高班 阿里网盘 课程大小:0.00字节 |
提取码:**** (购买后可见) |
下载 |