列表元素上的索引输出不正确-Python

时间:2019-03-19 03:33:03

标签: python python-3.6

我刚刚开始学习Python,但我一直受不了。

基本上,我想找出奇数索引号中的加号。

这是我的代码。

def odd_ones(lst):
    total = []
    for i in lst:
        if i % 2 == 1:
            total.append(i)
    return total

print(odd_ones([1,2,3,4,5,6,7,8])) 

输出为

[1, 3, 5, 7]而不是[2, 4, 6, 8]

有人可以帮我吗?

4 个答案:

答案 0 :(得分:1)

输出正确。您遍历值列表,而不是其索引。条件i % 2 == 1给出以下内容:

1 % 2 = 1 (true)
2 % 2 = 0 (false)
3 % 2 = 1 (true)
4 % 2 = 0 (false)
5 % 2 = 1 (true)
6 % 2 = 0 (false)
7 % 2 = 1 (true)
8 % 2 = 0 (false)

所以输出为(1,3,5,7)

答案 1 :(得分:1)

您想找到奇数inedx,但是您真正要做的是找到奇数元素

for i in lst:  #(i ---->the element in lst)   
    if i % 2 == 1:

所以您应该尝试

for i in range(len(lst)): #( i ---> the index of lst)
    if i % 2 == 1:

答案 2 :(得分:1)

根据需要Uncaught Error: Unexpected value 'undefined' imported by the module 'AppModule' at syntaxError (compiler.js:2430) at compiler.js:18651 at Array.forEach (<anonymous>) at CompileMetadataResolver.push../node_modules/@angular/compiler/fesm5/compiler.js.CompileMetadataResolver.getNgModuleMetadata (compiler.js:18620) at JitCompiler.push../node_modules/@angular/compiler/fesm5/compiler.js.JitCompiler._loadModules (compiler.js:26029) at JitCompiler.push../node_modules/@angular/compiler/fesm5/compiler.js.JitCompiler._compileModuleAndComponents (compiler.js:26010) at JitCompiler.push../node_modules/@angular/compiler/fesm5/compiler.js.JitCompiler.compileModuleAsync (compiler.js:25970) at CompilerImpl.push../node_modules/@angular/platform-browser-dynamic/fesm5/platform-browser-dynamic.js.CompilerImpl.compileModuleAsync (platform-browser-dynamic.js:143) at compileNgModuleFactory__PRE_R3__ (core.js:17618) at PlatformRef.push../node_modules/@angular/core/fesm5/core.js.PlatformRef.bootstrapModule (core.js:17801) odd index number提供计数器/索引

enumerate

答案 3 :(得分:1)

如果您不想将奇数放入数组中,则需要更改条件,因此代码最像这样:

def odd_ones(lst):
    total = []
    for i in lst:
        if i % 2 == 0:
            total.append(i)
    return total

print(odd_ones([1,2,3,4,5,6,7,8]))

输出:[2、4、6、8]