假设我有以下列表:
my_list = [2, 3, 4, 1, 44, 222, 43, 22]
如何在不使用 for 循环的情况下为子列表中的所有元素分配一个常量值?像这样的东西:
my_list[0:5:1] = 1 # Assign 1 to first 5 elements. This code is wrong since list requires an iterator
具体来说,我想为所有元素分配一个常量值,从索引 i
到列表的 end
即
my_list[i:end] = 1 # What I would like to do. The code itself is wrong
关于如何在 python 中以最干净的方式做到这一点有什么建议吗?
最佳答案
有时 2 线比 1 线好。
for i in range(0,5):
my_list[i] = 0
如果你真的想混淆一些东西:
这是一个单行代码,可以在不更改原始数组的情况下完成这项工作。
new_list = [0 if i in range(0,5) else x for x, i in zip(my_list, xrange(len(my_list)))]
您更愿意在未知代码中遇到哪个?或者 6 个月后你自己的代码。
关于python - 迭代python中的子列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11351502/