gpt4 book ai didi

python - 编写一个创建并返回列表的函数

转载 作者:太空宇宙 更新时间:2023-11-04 01:20:37 26 4
gpt4 key购买 nike

我目前正在尝试编写一个函数来创建并返回指定长度的列表,其中包含指定值的重复项。我真的不确定如何从输入的参数中获取创建列表的函数。帮助将不胜感激!我不是要求为我编写代码,只是对我应该使用哪些 Python 函数的简单解释或为我指明正确方向的某些内容。到目前为止我唯一的代码是这样的,我知道这是错误的:

def makeList(a,b):
myList = []
myList = makeList
return myList

最佳答案

编辑:

既然你说你想使用循环:

>>> def makeList(a, b):
... myList = []
... for _ in range(b):
... myList.append(a)
... return myList
...
>>> makeList('a', 12)
['a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a']
>>> makeList(3, 12)
[3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3]
>>>


实际上,因为解决方案很短,所以最简单的解释方法是演示:

>>> def makeList(a, b):
... return [a] * b
...
>>> makeList('a', 12)
['a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a']
>>> makeList(3, 12)
[3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3]
>>>

基本上,您将 a 放在一个列表中,然后将该列表乘以 b。这样做将创建一个列表,其内容是 a 重复 b 次。

但是需要注意的是,如果a是一个可变对象(比如一个列表),上面的函数将返回一个包含b引用的列表相同的对象 a

如果这种行为是不可取的,那么你可以使用列表理解和copy.deepcopy:

>>> from copy import deepcopy
>>> def makeList(a, b):
... return [deepcopy(a) for _ in range(b)]
...
>>> makeList('a', 12)
['a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a']
>>> makeList(3, 12)
[3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3]
>>>

最后,这里有一些关于这里使用的工具的有用引用:

  1. copy.deepcopy

  2. Sequence types

  3. range

  4. List comprehensions


注意:在所有的演示中,都假设b是一个整数。

关于python - 编写一个创建并返回列表的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21485599/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com