python-3.x 为什么要使用list()构造函数?

efzxgjgh  于 2022-12-20  发布在  Python
关注(0)|答案(8)|浏览(189)

我只是想知道list()构造函数的用法,因为如果我们想创建一个新的列表,那么我们可以使用方括号,list()构造函数的具体用法是什么。

newGrocerylist = list(("apple", "guava", "mango", "pineapple", "orange")) #Why use the list() constructor.
print(newGrocerylist)

#We can also do like this--

newGrocerylist = ["apple", "guava", "mango", "pineapple", "orange"]
print(newGrocerylist)

为什么要用列表构造函数呢?这不是很多余吗?

newGrocerylist = list(("apple", "guava", "mango", "pineapple", "orange"))
6ovsh4lw

6ovsh4lw1#

如果你想创建一个包含一堆新值的新列表,那么你是对的,没有必要使用列表构造函数,你应该使用文本符号:

my_list = ['a', 'b', 'c']

事实上,使用构造函数不可能创建一个包含一堆值的新列表,你只能使用它将可迭代对象转换成列表表示:

my_tuple = ('a', 'b', 'c')  # literal notation to create a new tuple
my_list = list(my_tuple)    # this is what you actually did in your first example

你也可以用类似的方法使用其他的可迭代构造函数,比如setdict,它们不是用来创建新的对象,而是把现有的对象转换成它们所描述的类型。

hm2xizp9

hm2xizp92#

也许我们想把一个Map或者Set转换成一个list,我们可以把它传递给构造函数。

mylist = list(myset)
dgiusagp

dgiusagp3#

list可以作为函数对象传递。
例如,您可以有一个创建任意集合的函数,并且可以传入listset

def make_collection_from_data(data, collection_maker):
    return collection_maker(data)

data = [1, 2, 3, 4]

make_collection_from_data(data, set) # Returns a list
make_collection_from_data(data, list) # Returns a set
rt4zxlrg

rt4zxlrg4#

据我所知,list()构造函数比list()使用更少的内存(因此执行时间更短)。检查下面的代码,如果遗漏了什么,请通知我:)

from timeit import default_timer as timer
start = timer()
list1 = ["apple", "banana", "cherry"]
print(list1)
stop =timer()
print(stop-start)

start =timer()
thislist = list(("apple", "banana", "cherry"))
print (thislist)
stop =timer()
print(stop-start)

结果(秒):列表[0.0003924000193364918]和list()构造函数[0.00016659998800605536]

jobtbby3

jobtbby35#

在第一个语句中,创建了一个元组(用圆括号表示)并用list()转换它,在第二个示例中,直接创建了一个列表(用方括号表示)。

ttisahbt

ttisahbt6#

它们在所有上下文中的行为并不相同,例如,你可以构造一个字典键的列表,或者创建一个只有一个元素(一个dict)的列表。

>>> list({1:2})
[1]
>>> [{1:2}]
[{1: 2}]
eivnm1vs

eivnm1vs7#

当有字符串时,我们主要使用Constructorlist()。

vowel_string = 'aeiou'
print(list(vowel_string))

输出

['a','e','i','o','u']
gab6jxml

gab6jxml8#

checkout :[] and {} vs list() and dict(), which is better?
看起来dict的构造函数[]或{}比list()或dict()快得多。

相关问题