假设我要打印列表索引2和8之间的所有元素,如何在不使用for或while循环的情况下实现它?
答案 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])