1
imn1 2021-03-22 18:26:00 +08:00
你重新看一下 index()的用法
应该是 i+1,不是 index(i)+1 后面一个也是这样 |
2
Pagliacii 2021-03-22 18:29:04 +08:00
index 只会返回第一个指定元素的索引,比如你代码里的 ha.index(i) 只会得到 4 这个结果
|
3
xiri 2021-03-22 18:29:12 +08:00
如果 i 等于 0,不管你遍历到的是哪一个 0,ha.index(i)永远返回 4 ( list.index 是返回列表中第一个等于该值的元素的索引)
|
5
maloneleo88 OP |
6
maloneleo88 OP @maloneleo88 打错字,直接报错,此时变量 i 是字符串直接加数字报错
|
7
Pagliacii 2021-03-22 18:35:32 +08:00
@maloneleo88 #5 那就直接 for i in range(3, len(ha), 9)
|
8
imn1 2021-03-22 18:40:37 +08:00
@maloneleo88 #5
这程序看得晕,i 一般表示下标,要同时使用下标和值,就 i,v 对应 enumerate 好了 |
9
ch2 2021-03-22 18:41:42 +08:00
有重复元素,用 index 会坑的
|
10
maloneleo88 OP |
11
maloneleo88 OP @ch2 是啊,新手不知道。 以前都是只有一个元素,很好用。不明白为什么不能直接用 index 循环,这样多智能
|
12
biglazycat 2021-03-23 06:36:56 +08:00
result = list(enumerate(ha))
for i in result[3::9]: if ha[i[0]] == '0' and ha[i[0] + 1] == '0': print(f"ha[{i[0] + 5}]: {ha[i[0] + 5]}") |
13
princelai 2021-03-24 10:57:19 +08:00
reshape 一下维度做起来不是更方便吗
``` ha_arr = np.array(ha) ha_arr = ha_arr.reshape(-1,9).astype(int) np.where((ha_arr[:,4]==0)&(ha_arr[:,5]==0),ha_arr[:,8],99999) ``` |