Python数据类型列表的类型是列表还是元组,具体取决于用法,但是为什么

时间:2018-07-23 13:32:18

标签: python-3.x list tuples iterable-unpacking

>>> lst = [[-2, -1], [0, 1, 2]]
>>> lst
   [[-2, -1], [0, 1, 2]]
>>> print (*lst)
[-2, -1] [0, 1, 2]

>>> print (type(lst))
<class 'list'>

因此lst的类型是list

在函数调用的上下文中-我不确定为什么它仍然不是列表。语句print (type(lst))打印:<class 'tuple'>.在函数中,为什么lst不是list

def mymap(func, *lst):
    res = []
    print (func)    
    print (*lst)
    print (type(lst))
    print (list(zip(*lst)))
    for args in list((zip(*lst))):           
        res.append(func(*args))
        #return (res) 
    return (res)
ts = mymap(pow, [-2, -1], [0, 1, 2])

print (ts)

1 个答案:

答案 0 :(得分:1)

在第一个示例中,您是this,然后将其赋予函数(在本例中为print)。

>>> numbers = [1, 2, 3]
>>> print(*numbers)
1 2 3

完全相同
>>> print(numbers[0], numbers[1], numbers[2])
1 2 3

在第二个示例中,您使用的是unpacking a sequence into several parameters,其中几个参数打包到一个元组中。

两个不同的事物,两个不同的结果。没有矛盾。