Python 中标名单';t减去指定的数字
我还是个编程新手,我需要一些帮助 我想从大于9的数字中减去9Python 中标名单';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
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)