我需要从列表中获取每个第3个值并将其添加到新列表中。
这是我到目前为止所拥有的。
def make_reduced_samples(original_samples, skip):
skipped_list = []
for count in range(0, len(original_samples), skip):
skipped_list.append(count)
return skipped_list
skip
等于3
我得到索引而不是列表中数字的值。
它给了我[0,3,6]
。列表中的索引是哪些,而不是索引的值。
给出的示例是:
在此列表[12,87,234,34,98,11,9,72]
中,您应该获得[12,34,9]
。
我不能以任何方式使用skipped_list = original_samples[::3]
。
答案 0 :(得分:0)
您需要在索引处附加original_samples数组的值。不是索引(计数)本身。
def make_reduced_samples(original_samples, skip):
skipped_list = []
for count in range(0, len(original_samples), skip):
skipped_list.append(original_samples[count])
return skipped_list
答案 1 :(得分:0)
正确,最pythonic,最有效的方法是使用切片。
lst = [12, 87, 234, 34, 98, 11, 9, 72]
skipped_list = lst[::3]
print(skipped_list) # [12, 34, 9]
如果该步骤不遵循线性关系(在此处这样做),则可以将列表理解与enumerate
一起使用以对索引进行过滤。
skipped_list = [x for i, x in enumerate(lst) if i % 3 == 0]
print(skipped_list) # [12, 34, 9]
答案 2 :(得分:-1)
一个班轮:
skipped_list = [j for (i,j) in enumerate(original_samples, start=1) if i % 3 == 0]