python - 迭代python中的子列表

标签 python list iterator

假设我有以下列表:

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/

相关文章:

python - 如何在 Python 的同一行打印多行字符串

python - MySQL日期导入问题

python - 如果我不使用集合,如何检查一个列表中的值是否在另一个列表中,并在 Python 中使用 if 语句的一行?

Java使用instanceof和迭代器

functional-programming - 在过滤掉 Rust 中的 None 元素后,是否有可能以某种方式将 Vec<Option<Value>> 转换为 Vec<Value> ?

python - 如何从列表中删除相似的值并打印剩余的值

html - CommonMark 规范是否允许列表标记前有前导空格?

python - 当我组合一类数据并分配给一个列表时,Python 中的 [...] 是什么意思?

c++ - 如何使用 std::copy 读取任意数量的值?

python - 在列表中,从 "team"中没有 "all_players"的玩家处获取 "name"