【发布时间】:2012-07-08 20:26:39
【问题描述】:
我需要根据具有边界(start,end) 的元组将列表的子集设置为特定值。
目前我正在这样做:
indexes = range(bounds[0], bounds[1] + 1)
for i in indexes:
my_list[i] = 'foo'
这对我来说似乎不太好。有没有更 Pythonic 的方法?
【问题讨论】:
-
您可以使用切片分配,但我认为您的方法很好。顺便说一下,index 的复数形式是 indices.
-
老实说,他们这样做的方式很好且可读性强,我认为将其压缩为一行不会增加任何内容。
-
@wim,我也更喜欢 indices,但大多数现代词典都认为两者都可以接受。
-
@wim 我认为“索引”在美国/加拿大可能更常见,而“索引”在英国/奥兹更常见
-
只是为了再次强调一点,我认为您在问题中的处理方式比使用切片分配的答案更Pythonic。 python 的禅宗说,“简单胜于复杂”。您只是将列表的几个元素设置为一个值,不需要在那里进行切片分配,所做的只是通过让您计算更多值来为错误引入更多范围(通过生成您正在分配的数组通过)。保留你所拥有的。
标签: python list python-2.7