Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 根据列表的大小打印包含元素的列表_Python_List - Fatal编程技术网

Python 根据列表的大小打印包含元素的列表

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

我有一个整数列表,我想打印一个列表,其中包含,例如,列表中的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:])
        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)