Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 中标名单';t减去指定的数字_Python_List_For Loop_If Statement - Fatal编程技术网

Python 中标名单';t减去指定的数字

Python 中标名单';t减去指定的数字,python,list,for-loop,if-statement,Python,List,For Loop,If Statement,我还是个编程新手,我需要一些帮助 我想从大于9的数字中减去9 ls = [1, 2, 3, 4 ,5, 6, 7, 8, 9] odd_num = [] for _ in ls[::2]: odd_num.append(_) ls.remove(_) for _ in odd_num: multip_elem = _ * 2 ls.append(multip_elem) for _ in ls: if _ > 9: subst

我还是个编程新手,我需要一些帮助 我想从大于9的数字中减去9

ls = [1, 2, 3, 4 ,5, 6, 7, 8, 9]
odd_num = []
for _ in ls[::2]:
    odd_num.append(_)
    ls.remove(_)    
for _ in odd_num:
    multip_elem = _ * 2
    ls.append(multip_elem)
for _ in ls:
    if _ > 9:
        substraction = _ - 9
        ls.append(substraction)
        ls.remove(_)
print(ls)
这是输出

[2, 4, 6, 8, 2, 6, 14, 1, 9]
14仍然在列表中,但我很确定它比9更大:)

ls=[1,2,3,4,5,6,7,8,9,10,11]
ls=[i-9如果i>9,则i-9,否则ls中的i为i]
打印(ls)
将一个列表转换为另一个列表的Python方式。 它使用一种称为列表理解的机制。 为了简化,我跳过了奇数部分。 这种方法首先创建一个新列表,然后将其分配给同一个变量


注意:在迭代列表(添加和删除项目)时修改列表通常不是一个好主意。

在迭代列表时不应修改列表,这通常会导致问题;)


您最好使用它的索引对其进行迭代,并直接替换该值

for i in range(len(ls)):
    if ls[i] > 9:
        ls[i] -= 9
或者使用列表理解从
ls
创建新列表:

ls = [i-9 if i>9 else i for i in ls]

上面有更好的答案(例如@Mirronelli),但我试图让这个答案尽可能接近您的原始代码,以防您需要保持类似的结构

ls=[1,2,3,4,5,6,7,8,9]
奇数_num=[]
对于ls中的元素:
#将列表分为奇数和偶数
如果元素%2!=0:
#创建你的单数列表
奇数追加(元素)
ls.移除(元素)
#你不需要在这里附加
#只需使用列表即可
奇数=[奇数中元素的元素*2]
#同样,您不需要在此处追加/删除
#只需使用列表即可
ls=[元素小于9时ls中元素的元素]
打印(ls)