我试图从列表中弹出某些项目:从最后一个,最后一个,第一个和第一个并将它们附加到新列表。但是,使用.pop()和.pop(0)会弹出第二个到最后一个和第二个项目。
def word_mixer(orig_list):
orig_list.sort()
new_list = []
while len(orig_list) > 5:
orig_list.pop(-4)
new_list.append(orig_list.pop(-4))
orig_list.pop(0)
new_list.append(orig_list.pop(0))
orig_list.pop()
new_list.append(orig_list.pop())
return new_list
poem = input("Give me a poem: ")
poem_list = poem.split()
poem_list_len = len(poem_list)
for item in range(poem_list_len):
if len(poem_list[item]) <= 3:
print(poem_list[item].lower())
elif len(poem_list[item]) >= 7:
print(poem_list[item].upper())
else:
print(poem_list[item])
word_mixer(poem_list)
鉴于列表[abcdefghijk]返回[&#39;&#39;,&#39; b&#39;,&#39; j&#39;]而不是[&#39; g&#39;, &#39; a&#39;,&#39; k&#39;]。为什么这样做?