Python编程从入门到实践学习笔记day1
第四章 操作列表
写这个主要是为了方便自己每天看看,感觉语法很简单就是容易忘 (跨考狗伤不起啊,研一大家都在看机器学习深度学习,就我还在补语言 =p=)就从今天开始算第一天把
4.3 创建数值列表
4.3.1 使用函数range()
可以使用range()来打印数字;例如
for value in range(1,5):
print(value)
输出结果
只到4,不会打印5。因为函数range()让Python从你指定的第一个值开始数,并在到达你指定的第二个值后停止,因此输出不包含第二个值(这里为5)。
使用range()时,如果输出不符合预期,请尝试将指定的值加1或减1。
4.3.2 使用range()创建数字列表
可使用函数list()将range()的结果直接转换为列表
numbers=list(range(1,6))
print(numbers)
结果是
使用函数range()时,还可指定步长(方法为,range(,步长))例如,下面的代码打印1~10内的偶数
even_numbers=list(range(1,11,2))
print(even_numbers)
结果为
在这个示例中,函数range()从2开始数,然后不断地加2,直到达到或超过终值(11),
使用函数range()几乎能够创建任何需要的数字集,例如,如何创建一个列表,其中包含前
10个整数(即1~10)的平方呢?在Python中,两个星号(**)表示乘方运算。
squares=[]
for square in range(1,11):
square=square**2
squares.append(square)
squares.append(square**2)
print(squares)
结果如下
如果想更简洁,可以将
合并为一句,即
其结果和之前结果一样。这里,square相当于临时变量,创建更复杂的列表时,可以使用上述方法任意一种。有时候,使用临时变量会让代码更易读;而在其他情况下,这样做只会让代码无谓地变长。不过你首先应该考虑的是,编写清晰易懂且能完成所需功能的代码;(毕竟要先让别人看懂,才能一起合作提高性能)等到审核代码时,再考虑采用更高效的方法。
4.3.3 对数字列表进行简单的统计计算
有专门用于处理数字列表的python函数,比如找出列表中最大值,最小值,求和:
4.3.4 列表解析
(虽然书上写了很多,但是个人理解就是简化编程 =p= )目的是:等你开始阅读他人编写的代码时,很可能会遇到它们。
下面就是将之前输出平方列表用列表解析创建
squares = [value for value in range(1,11)]
print(squares)
结果是
(一样的结果,但程序却简单了很多)
要创建自己的列表解析,需要经过一定的练习,但能够熟练地创建常规列表后,你会发现这
样做是完全值得的。当你觉得编写三四行代码来生成列表有点繁复时,就应考虑创建列表解析了。
4.4 使用列表的一部分
即处理列表所有元素,之前是如何访问单个列表元素
总体来说很简单,就是要注意区分赋值和副本的区别:
赋值是将整个列表的值赋给另外一个列表,原列表改变,赋值列表也改变。(即本质上是一个列表)
例:
my_foods = ['pizza', 'falafel', 'carrot cake']
friend_foods = my_foods
my_foods.append('cannoli')
friend_foods.append('ice cream')
print("My favorite foods are:")
print(my_foods)
print("\nMy friend's favorite foods are:")
print(friend_foods)
输出结果两个列表都一样(其实应该不同)
副本 就相当于创建了一个新列表,该列表里装的是之前列表的数据,但是之后就与之前列表没有任何关系。
例:
my_foods = ['pizza', 'falafel', 'carrot cake']
friend_foods = my_foods[:]
print("My favorite foods are:")
print(my_foods)
print("\nMy friend's favorite foods are:")
print(friend_foods)
结果为: