减少代码。将一些for循环减少为一个python

时间:2014-10-20 15:43:07

标签: python for-loop

我正在处理python中的代码。特别是代码是关于scythe密码编码。我做了一些循环,但我不知道是否可以在一个循环中减少它。你能帮助我吗? 这是我的代码:

for b in range(1, len(word), 6):
    word_list2.append(word[b])
print(word_list2) 

for c in range(2, len(word), 6):
    word_list3.append(word[c])
print(word_list3)

for d in range(3, len(word), 6):
    word_list4.append(word[d])
print(word_list4)

for e in range(4, len(word), 6):
    word_list5.append(word[e])
print(word_list5)

for f in range(5, len(word), 6):
    word_list6.append(word[f])
print(word_list6)

这段代码完全符合我的要求,但我想知道是否可以在一个for循环中减少所有内容。

这就是解决方案,我将收到的答案与我的工作联系起来:

word_list = []
for i in range(0,5):
    word_list1 = word[i::6]
word_lists = [word[start::6] for start in range(6)]

1 个答案:

答案 0 :(得分:10)

您不需要使用切片可以执行的循环:

word_list1 = word[0::6]
word_list2 = word[1::6]
word_list3 = word[2::6]
word_list4 = word[3::6]
word_list5 = word[4::6]
word_list6 = word[5::6]

现在每个都是word的第6个元素的新列表对象,从增加第一个索引开始。

但是你不会使用单独的变量;您可以轻松地将其列为具有列表理解的列表:

word_lists = [word[start::6] for start in range(6)]

现在您还有6个列表,每个列表都有第6个字的选择,从索引0到5开始。您可以使用word_lists[0]word_lists[1]等来处理每个列表。