Python中的索引运算符和列表

2024-04-26 13:57:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前正在我们大学的一门课程中学习Python基础知识,有一个问题我目前无法回答: 任务是:

更改第一节中的变量,这样每个if命令都将被解析为True,如果运行代码,应该会得到1-3。你知道吗

# Change the Code below here
number = 10
first_array = [5, 6, 7, 8] 

# If code
if number > 15:
    print("1")

if len(first_array) == 5:
    print("2")

second_array = ["one", "two", first_array]
if second_array[2][3]+3 == 10:
    print("3")

我试着用这个代码:

# Change the Code below here
number = 16
first_array = [7, 0, 0, 0, 0] 

# if code
if number > 15:
    print("1")

if len(first_array) == 5:
    print("2")

second_array = ["one", "two", first_array]
if second_array[2][3]+3 == 10:
    print("3")

有人能给我解释一下第二个数组[2][3]+3是如何求解的吗?我试着用索引运算符搜索,但找不到正确的答案来帮助我解决这个问题。你知道吗


Tags: the代码numberlenifherecodechange
3条回答

这些实际上是Python列表。你知道吗

Python中的列表可以包含任何内容作为其成员,不同的成员可以是不同的类型。你知道吗

这条线:

second_array = ["one", "two", first_array]

构建一个包含3个成员的列表:两个字符串,整个first_array作为其第3个成员。你知道吗

您可能认为它结合了两个列表:

[ "one", "two", 7, 0, 0, 0, 0 ]

但这是不对的!你知道吗

你真正得到的是:

[ "one", "two", [ 7, 0, 0, 0, 0 ] ]

列表中的列表,或数组中的数组。你知道吗

这就是为什么这一行:

if second_array[2][3]+3 == 10:

有两个索引,每个索引都在自己的一组括号内[]
第一个(从左起)是外部列表,第二个是内部列表。你知道吗

你也可以这样写:

member = second_array[2]
if member[3] + 3 == 10:

试着把print member放在第一行之后,看看会发生什么。你知道吗

当您执行second_array = ["one", "two", first_array]时,second_array的值变成["one", "two", [7,0,0,0,0]]。你知道吗

因此,可以将second_array[2][3]读作“第二个数组的第三个元素的第四个元素”(基于0的索引的原因)。你知道吗

所以第二个数组[2][3]是用x标记的元素: ["one", "two", [7,0,0,X,0]]

first_array[3]+3 == 10 <;=>; first_array[3] == 7

因此使用first_array = [7, 0, 0, 7, 0],测试条件将回答True

相关问题 更多 >