Python中的数组索引

use*_*590 3 python arrays indexing dictionary list

初学者在这里学习python,想知道一些事情.

这给了我第二个元素:

list = [1,2,3,4]
list.index(2)
2
Run Code Online (Sandbox Code Playgroud)

但当我尝试这个:

list = [0] * 5
list[2] = [1,2,3,4]
list.index[4]
Run Code Online (Sandbox Code Playgroud)

我收到一个错误.有没有办法从数组中提取元素的索引,无论它放在什么列表中?我知道词典是可能的:

info = {first:1,second:2,third:3}
for i in info.values:
print i
1
2
3
Run Code Online (Sandbox Code Playgroud)

列表有类似的东西吗?

ick*_*fay 13

index方法没有达到预期效果.要在索引处获取项目,必须使用以下[]语法:

>>> my_list = ['foo', 'bar', 'baz']
>>> my_list[1]  # indices are zero-based
'bar'
Run Code Online (Sandbox Code Playgroud)

index 用于从项目获取索引:

>>> my_list.index('baz')
2
Run Code Online (Sandbox Code Playgroud)

如果你问是否有任何方法可以index进入子列表,答案是否定的,因为它必须返回一些你可以传入的内容[],而[]不会进入子列表.


Idr*_*sim 5

list 是一个内置函数,不要将它用作变量名,它违反协议,而是使用 lst。

要访问列表中的元素,请使用 [] 和该元素的索引号

lst = [1,2,3,4]
lst[0]
1
Run Code Online (Sandbox Code Playgroud)

另一个相同的例子

lst = [1,2,3,4]
lst[3]
4
Run Code Online (Sandbox Code Playgroud)

使用 (:) 分号访问系列中的元素,分号前的第一个索引号在分号后包含和排除

lst[0:3]
[1, 2, 3]
Run Code Online (Sandbox Code Playgroud)

如果未指定分号前的索引号,则所有数字都包含在分号后的索引号的列表开始之前

lst[:2]
[1, 2]
Run Code Online (Sandbox Code Playgroud)

如果未指定分号后的索引号,则所有数字都包含到列表末尾,相对于分号前的索引号

lst[1:]
[2, 3, 4]
Run Code Online (Sandbox Code Playgroud)

如果我们再给一个分号,则特定字段数将被视为步骤

lst[0:4:2]
[1, 3]
Run Code Online (Sandbox Code Playgroud)

这用于查找元素的特定索引号

lst.index(3)
2
Run Code Online (Sandbox Code Playgroud)

这是我最喜欢的 pop 函数之一,它从索引的基础上拉出元素,提供更多信息,它还从主列表中删除该元素

lst.pop(1)
2
Run Code Online (Sandbox Code Playgroud)

现在看到元素被删除的主列表..:)

lst
[1, 3, 4]
Run Code Online (Sandbox Code Playgroud)

为了从给定的列表中提取偶数,请使用这个,这里我举了一个新的例子来更好地理解

lst = [1,1,2,3,4,44,45,56]

import numpy as np

lst = np.array(lst)
lst = lst[lst%2==0]
list(lst)
[2, 4, 44, 56]
Run Code Online (Sandbox Code Playgroud)

为了从给定的列表中提取奇数,请使用这个(注意我的位置是 1 而不是 0)

lst = [1,1,2,3,4,44,45,56]

import numpy as np

lst = np.array(lst)
lst = lst[lst%2==1]
list(lst)
[1, 1, 3, 45]
Run Code Online (Sandbox Code Playgroud)

快乐学习...:)


sap*_*api 3

在第二个示例中,您的列表将如下所示:

[0, 0, [1, 2, 3, 4], 0, 0]
Run Code Online (Sandbox Code Playgroud)

因此没有元素4因此列表中

这是因为当您设置 时list[2],您正在更改第三个元素,而不是更新列表中的其他元素。

例如,如果要替换列表中的一系列值,请使用切片表示法list[2:](对于“从第三个到最后一个的每个元素”)。

更一般地,该.index方法对身份进行操作。因此,以下内容将起作用,因为您询问 python 您插入的特定列表对象在列表中的位置:

lst = [0]*5
lst2 = [1,2,3,4]
lst[2] = lst2
lst.index(lst2) # 2
Run Code Online (Sandbox Code Playgroud)