Python入门 — 操作列表

目录

一、遍历列表

二、创建数值列表

1、range() 函数

2、range() 创建数值列表

3、列表推导式

三、使用列表的部分元素

1、切片

2、复制列表

四、元组


一、遍历列表

和所有编程语言一样,首先可以考虑 for 循环

egs = [ 'aa', 'bb', 'cc' ]
for eg in egs:
    print(eg)

定义了一个列表,并定义一个 for 循环,:对于(for)列表 egs 中的每位 eg,都打印(print)元素 eg。输出结果如下:

aa

bb

cc

然后再写一个稍微复杂点的 for 循环

magicians = ['alice', 'david', 'carolina']
for magician in magicians:
    print(f"{magician.title()}, that was a great trick!")
    print(f"I can't wait to see your next trick, {magician.title()}.\n")
print("Thank you, everyone. That was a great magic show!")

注意:Python 根据缩进来判断代码行与程序其他部分的关系

输出结果如下:

Alice, that was a great trick!
I can't wait to see your next trick, Alice.


David, that was a great trick!
I can't wait to see your next trick, David.


Carolina, that was a great trick!
I can't wait to see your next trick, Carolina.


Thank you, everyone. That was a great magic show!

在 for 循环后面,没有缩进的代码都只执行一次。

二、创建数值列表

列表非常适合用于存储数值集合,而 Python 提供了很多工具,可帮助你高效地处理数值列表。

1、range() 函数

for value in range(1, 5):
    print(value)

输出结果:实际上不会打印 5 

1
2
3
4

2、range() 创建数值列表

使用 list() 函数将 range() 的结果直接转换为列表。

numbers = list(range(1, 6))
print(numbers)

输出结果:

[1, 2, 3, 4, 5]

其实,range() 函数,可指定步长,只需再加第三个参数

even_numbers = list(range(2, 11, 2))
print(even_numbers)

输出结果:

[2, 4, 6, 8, 10]

有几个 Python 函数可帮助你处理数值列表:min(), max(), sum()。可以试试

3、列表推导式

squares = []
for value in range(1,11):
    squares.append(value**2)

print(squares)

输出结果:

[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

生成列表 squares 的方式包含三四行代码,而列表推导式让你只需编写一行代码就能生成这样的列表。列表推导式(list comprehension)将 for 循环和创建新元素的代码合并成一行,并自动追加新元素。

squares = [value**2 for value in range(1, 11)]
print(squares)

使用这种语法,首先指定一个描述性的列表名,如 squares。然后指定一个左方括号,并定义一个表达式,用于生成要存储到列表中的值。在这个示例中,表达式为 value**2,它计算平方值。接下来,编写一个 for 循环,用于给表达式提供值,再加上右方括号。在这个示例中,for 循环为 for value in range(1,11),它将值1~10 提供给表达式 value**2

注意:这里的 for 语句末尾没有冒号

三、使用列表的部分元素

处理列表的部分元素,在 Python 中称为切片(slice)

1、切片

创建切片,可指定要使用的第一个元素和最后一个元素的索引。与 range() 函数一样,Python 在到达指定的第二个索引之前的元素时停止。

players = ['aa', 'bb', 'cc', 'dd', 'ee']
print(players[0:3])

输出结果:

[ 'aa', 'bb', 'cc' ]

如果没有指定第一个索引,Python 将自动从列表开头开始。

players = ['aa', 'bb', 'cc', 'dd', 'ee']
print(players[:4])

输出结果:

[ 'aa', 'bb', 'cc', 'dd' ]

要让切片终止于列表末尾,也可使用类似的语法:

players = ['aa', 'bb', 'cc', 'dd', 'ee']
print(players[2:])

输出结果:

['cc', 'dd', 'ee']

负数索引返回与列表末尾有相应距离的元素,因此可以输出列表末尾的任意切片,如果要输出列表上最后三个元素,那么可以:

players = ['aa', 'bb', 'cc', 'dd', 'ee']
print(players[-3:])

['cc', 'dd', 'ee']

2、复制列表

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)

输出结果:

My favorite foods are:
['pizza', 'falafel', 'carrot cake']


My friend's favorite foods are:
['pizza', 'falafel', 'carrot cake']

如果只是将 my_foods 赋给 friend_foods,就不能得到两个列表,例如:

friend_foods = my_foods   ## 这是不OK的

这种语法实际上是让 Python 将新变量 friend_foods 关联到已与my_foods 相关联的列表,因此这两个变量指向同一个列表。

四、元组

列表是可以修改的,但是,有时候需要创建一系列不可修改的元素。Python 将不能修改的值称为不可变的,而不可变的列表称为元组(tuple)。元组看起来很像列表,使用圆括号来标识。定义元组后,就可使用索引来访问其元素。

dd = (10, 20)
print(dd[0])
print(dd[1])

当你试图修改第一个元素的值,将会导致 Python 返回类型错误的消息。

注意:严格地说,元组是由逗号标识的,圆括号只是让元组看起来更整洁、更清晰。如果你要定义只包含一个元素的元组,必须在这个元素后面加上逗号:

mm = (1, )

创建只包含一个元素的元组通常没有意义,但自动生成的元组有可能只有一个元素。

虽然不能修改元组的元素,但可以给表示元组的变量赋值

dimensions = (200, 50)

dimensions = (400, 100)

## 元组变量重新赋值是合法的,只是将一个新元组关联到变量 dimensions

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值