为什么当我运行:遍历列表理解Python中
a = ['a','n','g']
b = [range(0,4)]
print [(x,y) for x in a for y in b]
回报:
[('a', [0, 1, 2, 3]), ('n', [0, 1, 2, 3]), ('g', [0, 1, 2, 3])]
但是当我运行这段代码:
a = ['a','n','g']
b = [0,1,2,3,4]
print [(x,y) for x in a for y in b]
它返回:
[('a', 0), ('a', 1), ('a', 2), ('a', 3), ('a', 4), ('n', 0), ('n', 1), ('n', 2), ('n', 3), ('n', 4), ('g', 0), ('g', 1), ('g', 2), ('g', 3), ('g', 4)]
所以你可能已经注意到,如果我使用范围功能,我得到一个错误的输出,但如果我在[“一”,“N”,“G”]手动密钥我得到所需的输出
b = [range(0,4)]
and
b = [0,1,2,3,4]
两者显然是相同的权利?因此,为什么有不同的结果(如果他们是相同的)?
基本上,我试图建立具有在逆转了一系列的999和乙射程为999的程序,并且相信我硬编码的1000个数字是没有效率的,我可能会被认为是疯狂
显然没有,thery是不一样的,范围(0,4)为[0,1,2,3] – AAlferez
为什么不看'B'后设置'B = [范围( 0,4)]'? – cmd