当我在 Python 3 中使用 zip() 函数时,我是 'losing' 值

I am 'losing' values when I use the zip() function in Python 3

当我 运行 以下代码时,我似乎 'lose' 值,但我不确定为什么。还有其他方法可以打印出两个相邻的列表吗?

我想做的是根据用户输入在 long 中创建一个整数列表。然后应按升序将它们分为正值和负值。

原代码为:

import numpy as np
import random
print( "(This will create a list of integers, UserInput long. Then separate"     
 "\nthem into positive and negative values in ascending order.)")

userI = input("\nHow many integers would you like, between the values of -100 and 100?: ")

userI = int(userI)

Ints = []

for A in range(userI):
    Ints.append(random.randint(-100, 100))

print('\n', len(Ints))

def quad(N):
    Ints_pos = []
    Ints_neg = []
    for B in N:
        if B >= 0:
            Ints_pos.append(B)
        else:
            Ints_neg.append(B)

    return (Ints_pos, Ints_neg)

pos, neg = quad(N = Ints)

pos = sorted(pos)
neg = sorted(neg, reverse=True)

print('\nPositive', '             Negative'
  '\nValues:',  '              Values:')


for C, D in zip(pos, neg):
    print('-> ', C, '               -> ', D)

input("\nPress 'Enter' to exit")

请记住,在使用 zip 时:

The iterator stops when the shortest input iterable is exhausted.

您应该考虑使用 itertools.zip_longest 并提供一个虚拟值来填充较短的可迭代对象。