Python 根据列表的大小打印包含元素的列表
我有一个整数列表,我想打印一个列表,其中包含,例如,列表中的k个元素,取决于k值 例如,如果k=4,这意味着我将要打印的列表中正好有4个元素。对于k=5,列表中有5个元素,等等 这是我的密码:Python 根据列表的大小打印包含元素的列表,python,list,Python,List,我有一个整数列表,我想打印一个列表,其中包含,例如,列表中的k个元素,取决于k值 例如,如果k=4,这意味着我将要打印的列表中正好有4个元素。对于k=5,列表中有5个元素,等等 这是我的密码: listA = [9,-2,6,1,80,9,-2] def findMinimum(l): if len(l) == 1: return l[0] else: minNumber = findMinimum(l[1:]) minimum
listA = [9,-2,6,1,80,9,-2]
def findMinimum(l):
if len(l) == 1:
return l[0]
else:
minNumber = findMinimum(l[1:])
minimumVal = l[0]
if minNumber<minimumVal:
minimumVal = minNumber
return minimumVal
def listMin(k,l):
temp = []*k
for i in range(len(l)-1):
minVal = findMinimum(l)
temp.append(minVal)
for item in temp:
if item in l:
l.remove(item)
print(temp)
listMin(4,listA)
我编写的代码在列表中给了我6个元素,而不是4个:
[-2,-2,1,6,9,9]
我猜我的错误是temp=[]*k.你把问题弄得比应该的复杂得多:
l = [9,-2,6,1,80,9,-2]
k = 4
n = []
while k > 0:
m = min(l)
n.append(m)
l.remove(m)
k -= 1
print n
>> [-2, -2, 1, 6]
这一行:
for i in range(len(l)-1):
应改为:
for i in range(k):
首先。在python中,不需要手工编写函数来查找最小值。有内置的 第二如果您希望您的程序在数据结构中对多个值进行操作,那么在大多数情况下,一次操作所有值是一个好主意。 根据您的代码: 使用内置的升序排序列表 该列表最多包含k个值 所以,你可以以
sorted(listA)[:k]
要通过一个接一个的操作获得相同的结果,您可以
求最小值
按值删除单个元素
将其添加到新列表中
做k次
看起来像什么
result = []
for _ in range(k):
value = min(ListA)
listA.remove(value)
result.append(value)
那么,你想要k个最小的元素吗?提示:什么是k*0?那么k*[]是什么?但这并不是问题所在,因为您要附加到列表中,所以不必使用任何特定的大小进行初始化。为什么不对其进行排序和切片呢?lower_four=sortedlistA[:4]@zwer这太复杂了,我认为这是教递归的任务。你的循环错了。用于rangek中的i:那么它就可以工作了。注意!谢谢你的帮助。我选择了较长的方法。我没提,但这是必须的。抱歉误会了,真有趣!但我不确定我是否可以在考试中这样做。也许我会在更高的层次上了解这些。
result = []
for _ in range(k):
value = min(ListA)
listA.remove(value)
result.append(value)