一、遍历整个列表,
肯定要用到for循环去访问列表中的每个元素,首先建一个列表,如下图举例:
magicians=['alice','david','carolina']
#遍历整个列表
for magician in magicians:
print(magician)
1.深入研究循环,
与C语言不同的是,python中的语句没有;{}等等这些符号,所以在写for 循环时一定要注意,对于for循环下的语句,要缩进两格,编译器会自动空格,用这种方法来表示属性关系。刚开始使用循环时要注意,对列表的每个元素,都将执行循环指定的步骤,不管列表中包含了多少个元素。即使列表有一百万个元素,for循环将执行一百万次。
另外,编写for循环时,可以给依次与列表中每个值相关联的临时变量指定任意名称,例如,对于小猫列表,小狗列表和一般性列表,可以如下命名,
for cat in cats; for dog in dogs; for item in list_of_items
2.for循环中的更多操作,
magicians=['alice','david','carolina']
#for循环的更多操作
for magician in magicians:
print(f"{magician.title()},that was a great trick!")
print("Thank you, everyone.That was a great magic show")
从上图可以看到,第一个打印是缩进状态,对于列表中的每个元素都进行了这句话的操作;而第二个打印没有缩进,就意味着没有参与循环,只打印了这句话。其次在第一句打印中还用到了之前字符串的title()方法,将字符串的首字母大写(有问题请参照之前的文章)。
这样的缩进就意味着要格外注意是否真的要进入循环,要进行循环操作,就要缩进;相反不进行循环操作,就不需要缩进。
二、创建数值列表
之前在创建字符串列表时提了一次,除了字符串还有数字也非常常用。列表非常适合用于存储数字集合,python自己提供了很多工具。
1.使用函数range()
这个函数能够轻松生成一系列数,如下所示:
#创建数值列表
for value in range(1,5):
print(value)
在这个示例中,range()只打印数1-4。这时编程语言中常见的差一的结果,若要打印1-5,使用
for value in range(1,6),即可,以此类推。
同时在调用函数range()时,也可指定一个参数,这样就会从0开始,如下图:
for value in range(6):
print(value)
2.使用range()创建数字列表
(1)要创建数字列表,可使用函数list()将range()的结果直接转换为列表。如果将range()作为list()的参数,输出将是一个数字列表。如下所示,
numbers=list(range(1,6))
print(numbers)
(2)使用range()函数,还可指定步长,所以可以给这个函数指定三个参数,python将根据步长来生成数。比如:等差数列
even_numbers=list(range(2,11,2))
print(even_numbers)
这个例子中函数range()从2开始,不断加2,直到达到或超过终值11。
(3)函数range()几乎能够创建任何需要的数集,举例,创建一个列表,其中包含1-10的平方,
#创建1-10平方的列表
squares=[]
for value in range(1,11):
square=value**2
squares.append(square)
print(squares)
如上图所示,创建一个名为squares的空列表。接下来,使用函数range()遍历1-10。在循环中,计算当前值的平方(python中用**表示乘方运算)。再将结果附加到列表squares末尾(append())。最后再打印该列表。
(4)对数字列表进行简单的统计计算
python中有几个专门用于处理数字列表的函数,可以直接找到列表中的最大值、最小值和总和,如下图:
#对数字列表的简单统计计算
digits=[1,2,3,4,5,6,7,8,9,10]
print(min(digits))
print(max(digits))
print(sum(digits))
(5)列表解析
列表解析将for循环和创建新元素的代码合成一行,并自动附加新元素。如果去看别人的代码,很有可能遇到。比如前边生成列表squares的好几行代码,可以合成一行,如下图:
#列表解析
squares=[value**2 for value in range(1,11)]
print(squares)
结果与之前的相同,大家自己熟悉之前的操作后,再进一步提升,提高代码的审核高效性。
今天就写这么多了,明天继续。。