Python编程从入门到实践学习笔记

第四章 操作列表

写这个主要是为了方便自己每天看看,感觉语法很简单就是容易忘 (跨考狗伤不起啊,研一大家都在看机器学习深度学习,就我还在补语言 =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)

结果为:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值