在主要功能中:
创建一个列表,其中包含最近美国总统的姓氏,从肯尼迪开始,到奥巴马结束,按时间顺序排列。 使用for循环迭代整个列表,在自己的行上打印每个总统的名字。 通过从名单中删除前两位总统和最后两位总统来筹码。 将新切片作为参数传递给名为playlist的自定义函数。 使用while循环显示播放列表返回的列表中的元素。
在播放列表功能中:
打印切片列表的大小。使用列表功能。 按反向字母顺序对切片列表进行排序。 将此列表返回给main。
这是我到目前为止所拥有的。我无法弄清楚如何插入while循环。每次我这样做时,列表都会继续运行,或者它不会显示出来。
def main():
#Create list.
names = ['Kennedy', 'Johnson', 'Nixon', 'Ford', 'Carter', 'Reagan', 'Bush', 'Clinton', 'Bush', 'Obama']
sliced_list = names[2:8]
#Display the list.
print('Here are the most recent presidents of the USA')
for n in names:
print(n)
sliced = playlist(sliced_list)
def playlist(sliced_list):
size = len(sliced_list)
print('The list size is now', size)
sliced_list.sort()
sliced_list.reverse()
return sliced_list
main()
这就应该回来了。
Original list in main:
Kennedy
Johnson
Nixon
Ford
Carter
Reagan
Bush
Clinton
Bush
Obama
Not in main: list size is now 6
Back in main, list in reverse alpha order
Reagan
Nixon
Ford
Clinton
Carter
Bush
答案 0 :(得分:1)
使用while
循环迭代列表元素而不修改列表:
i = 0
while i < len(sliced):
print(sliced[i])
i += 1
如果您更喜欢browskie建议的方法改变列表,我建议避免使用try-except块,如下所示:
while len(sliced):
print(sliced.pop(0))
答案 1 :(得分:0)
Python while循环是一个简单的循环,只要满足条件就会循环,所以如果你做while i<5:
这样的事情,它将循环直到i
变得等于或大于5。
另外,在python中,您可以使用len(lst)
获取列表的长度,也可以lst[i]
(其中i是一个称为索引的整数)来获取该位置的元素,原始列表中的示例,如果我们names[1]
,它将返回Johnson
。
现在在你的while循环中你想要从0开始循环到列表的长度并在每个索引处打印list元素。我希望你能根据所有信息创建你需要的程序。
答案 2 :(得分:0)
您可以尝试这样的事情:
sliced = playlist(sliced_list) #This is from your code
while True: #Will run forever
try:
#And try to remove and print out the first item from the list
print(sliced.pop(0))
except:
#As soon as it exhausts the list and fails, it will stop the loop
break
答案 3 :(得分:0)
我想你差不多了。 while循环将继续,直到切片列表为空。
def main():
#Create list.
names = ['Kennedy', 'Johnson', 'Nixon', 'Ford', 'Carter', 'Reagan', 'Bush', 'Clinton', 'Bush', 'Obama']
for name in names: #for to print names
print name
sliced = playlist(names[2:-2]) # slice
while len(sliced): # while there is names in sliced do:
print sliced.pop() # removes the last name on sliced and prints it
def playlist(sliced_list):
size = len(sliced_list)
print('The list size is now', size)
sliced_list.sort()
sliced_list.reverse()
return sliced_list
main()