如何在没有循环的情况下迭代Python中的列表?

时间:2016-08-11 02:56:07

标签: python loops

假设我要打印列表索引2和8之间的所有元素,如何在不使用for或while循环的情况下实现它?

4 个答案:

答案 0 :(得分:2)

我们来看看这个样本清单:

>>> mylist
['zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine']

现在,让我们打印元素2到8而不循环:

>>> ' '.join(mylist[2:9])
'two three four five six seven eight'

在这里,2:9告诉python使用以2开头的索引并继续,但包括9

答案 1 :(得分:2)

使用递归怎么样?

subject1=['data mining','web mining','electronic engineering','cloud computing','Smart Biomaterials','Mathematical modeling']
subject2=['Computer Science','Engineering','Biology']

tfidf_vectorizer = TfidfVectorizer(max_df=0.8, max_features=200000,
                               min_df=0.2, stop_words='english',
                               use_idf=True)
tfidf_matrix = tfidf_vectorizer.fit_transform(subject1)
print(tfidf_matrix)
km = KMeans(n_clusters=3)
km.fit(tfidf_matrix)
cen = km.cluster_centers_
label = km.labels_

for i in  tfidf_matrix:
print() #should be 'computer science: web mining, data mining, cloud computing'

这样称呼:

def iterate(lst, start, end):
  if start < 0 or end >= len(lst) or start > end:
    return
  print(lst[start])
  iterate(lst, start + 1, end)

答案 2 :(得分:2)

通过切片列表

iterate([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 2, 8)

要使用>>> l = [1,2,3,4,5,6,7,8,9,10] >>> print(l[1:8]) [2, 3, 4, 5, 6, 7, 8] # output in console 使用l[1:8]

获取值的总和
sum

编辑因为@pzp:

如果要打印索引2和索引8之间的所有元素(包括两者),只需将上面代码中的>>> sum(l[1:8]) 35 # output 替换为print(l[1:8])

答案 3 :(得分:1)

使用列表理解的简单解决方案

list1 = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]
sum1 = sum([i for i in list1 if i > 2 and i < 9])
相关问题