扎实基础深入篇(三):对列表赶尽杀绝

前言:本文笔记来自于《python编程从入门到实践》,Eric Mathhes著。

代码改变世界。

在进入正题之前,我们来聊聊python程序员的那些事吧!

当你学习python越来越深入的时候,你会逐渐编写越来越长的程序,有必要了解一些代码格式设置的约定。

要成为专业的程序员,应从现在开始就遵循这些指南,以养成良好的习惯。

我们需要了解一个东西:python改进提案,也就是PEP8,这将是我们需要遵循的一个著名指南。

1.建议每级缩进都使用四个空格,即可提高可读性,又留下足够的多级缩进空间。建议不要混合使用制表符和空格,这样会让python感到迷惑。

2.建议每行都不超过80字符。如果过长的话,读起来不够便捷,也违反了python语言本身的特点:简洁美观。

3.空行不要滥用,虽然不会影响代码的运行,但会影响代码的可读性。

4.学会注释,养成一个良好的注释习惯,使别人读你的代码更加容易,这有利于项目的合作。

5.更多PEP8格式设置指南请访问:https://python.org/dev/peps/pep-0008/

永远不要忽视上面的话,这些指南将影响一个python程序员的一生,良好的代码风格极为重要。

在上一篇文章中,我留了三个作业,相信大家都已经很好的完成了:

创建一个列表,其中包含3-30内能被3整除的数字。

创建一个列表,其中包含1-10中奇数的立方数

创建一个列表,其中包含1-20的奇数。

我们来看第一道题,其实这道题很简单,不必在整除上下功夫,你可以将它换成另外一种形式,在3到30中,从3开始,每过3个数都是可以被3整除的数,这样是不是清晰多了?

aaa=[ ]
for a in range(3,31,3):
    aaa.append(a)
print(aaa)
输出结果:
[3, 6, 9, 12, 15, 18, 21, 24, 27, 30]
 
这当然是普通的方法,换成列表解析的方式自然是这样:
aaa=[a for a in range(3,31,3)]
print(aaa)
 
那么剩下两道题我直接省略普通的方法,我直接写出列表解析方式的答案:
aaa=[a**3 for a in range(1,10,2)]
print(aaa)
 
aaa=[a for a in range(1,20,2)]
print(aaa)
 
好了。以上就是三道题的答案,其实很简单。那么,我们知道,列表还有一种操作方式,那就是排序。这儿,我将介绍排序和临时排序两种方式。
 
一.排序
使用方法sort()对列表进行永久性排序,按字母顺序排列。
aa=['pitaya', 'boom', 'pear', 'orange', 'banana', 'apple']
aa.sort()
print(aa)
输出结果:
['apple', 'banana', 'boom', 'orange', 'pear', 'pitaya']
注意,当有两个元素的首字母相同时,比较各元素的第二个字母,以此类推。
 
如果想要倒着排序,按倒着的字母顺序排列,给括号传递一个参数,reverse=True
aa=['pitaya', 'boom', 'pear', 'orange', 'banana', 'apple']
aa.sort(reverse=True)
print(aa)
输出结果:
['pitaya', 'pear', 'orange', 'boom', 'banana', 'apple']
 
二.临时排序
要保留列表元素原来的排列顺序,同时以特定的顺序呈现他们,可使用函数sorted()。
正着打印:sorted()
倒着打印:sorted(reverse=True)
 
当然了,如果你不知道列表有多少个元素,可以使用len()可快速获悉列表的长度:
aa=['pitaya', 'boom', 'pear', 'orange', 'banana', 'apple']
print(len(aa))
输出结果:
6
 
 
好了,关于列表我就讲到这儿啦,希望大家能及时巩固列表以及元组的相关知识,这些基础知识很重要。
我来总结一下相关的知识吧!
( ),元组,不可变,tuple
  [  ]  ,列表,可变,list
  {  }  ,集合,无序且不重复,set
 
set集合不开博客讲,几句话就能理解:
set集合是无序且不重复元素的集合,比如set1={1,1,2,3},在系统输出的时候,会被过滤成set1={1,2,3}。
和tuple,list不同的是,set不能使用索引,因为set集合里面的元素是无序的。
 
set和dict的区别:
相同点:使用的符号都是大括号{ }
不同点:set是无序且不重复的集合,dict是以键为key,值为value的字典。
原文地址:https://www.cnblogs.com/Masterpaopao/p/10022739.html