我正在处理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)]
答案 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]
等来处理每个列表。