将函数的返回变量追加到不同的列表中

2024-04-20 03:44:49 发布

您现在位置:Python中文网/ 问答频道 /正文

将函数返回的变量(不止一个)附加到不同列表的python方法是什么?你知道吗

假设我们有一个函数,比如:

def func():
    return np.random.randint(0, 10), np.random.randint(10, 20)

最简单的非肾盂方法是:

l1 = []
l2 = []

for i in range(x):
    # do something
    # do something else
    a, b = func()
    l1.append(a)
    l2.append(b)

或使用numpy:

lst = []
for i in range(x):
    # do something
    # do something else
    lst.append(func())

l1, l2 = np.array(lst).T

或者使用here提供的解决方案提取项目。你知道吗


Tags: 方法函数inl1fornprangerandom
2条回答

根据具体情况,这可能会更干净:

def func(l1, l2):
    l1.append(np.random.randint(0, 10)); l2.append(np.random.randint(10, 20))
    return l1,l2

一种方法是创建master-list,然后转置:

def func():
    return np.random.randint(0, 10), np.random.randint(10, 20)

masterLst = []    
for i in range(5):
    masterLst.append(func())

l1,l2 = zip(*masterLst)

print(list(l1))
print(list(l2))

输出

[6, 5, 8, 6, 2]
[19, 11, 19, 10, 17]

编辑:

来自@hpaulj,是当前方法的一个变体:

def func():
    return np.random.randint(0, 10), np.random.randint(10, 20)

l1,l2 = list(zip(*[func() for _ in range(4)]))

print(list(l1))
print(list(l2))

相关问题 更多 >