Python Intro - zip object

来源:互联网 发布:mac 抹掉磁盘名称 编辑:程序博客网 时间:2024/06/04 18:05




#!/usr/local/bin/python3

try:
    import numpy as np
except ImportError:
    print("numpy is not installed")

sizes = [37, 5, 6];

print(sizes[-1]);

result = zip(sizes[:-1], sizes[1:]);

ll = len(result);   #cause error: ll = len(result); TypeError: object of type 'zip' has no len()

print(*result);   # correct deference, output (37, 5) (5, 6)
print("len of result = ", ll);



正确的代码如下:


#!/usr/local/bin/python3

import copy;
try:
    import numpy as np
except ImportError:
    print("numpy is not installed")

sizes = [37, 5, 6];

print(sizes[-1]);

result = zip(sizes[:-1], sizes[1:]);

tt = copy.deepcopy(result);
tt = tuple(tt);
ll = len(tt);

print("result = ", *result);
print("tuple = ", tt);
print("len of result = ", ll);


运行结果如下:


6
result =  (37, 5) (5, 6)
tuple =  ((37, 5), (5, 6))
len of result =  2


=============================================

或者

#!/usr/local/bin/python3
import copy;
try:
    import numpy as np
except ImportError:
    print("numpy is not installed")
sizes = [37, 5, 6];
print(sizes[-1]);
result = zip(sizes[:-1], sizes[1:]);
tt = copy.deepcopy(result);
tt = list(tt);
ll = len(tt);
print("result = ", *result);
print("list = ", tt);
print("len of result = ", ll);



6
result =  (37, 5) (5, 6)
list =  [(37, 5), (5, 6)]
len of result =  2


对于zip对象的维度信息可以通过先将其转换为list, 然后求维度信息。
如上述代码片段。
如一个result对象为zip对象, 先将其转换为list对象。
result = list(result);
len(result) # print 2
len(result[0])   # also print 2
因此就知道是一个类似Mat22的对象了。


0 0
原创粉丝点击