簡體   English   中英

如何壓縮兩個數組作為返回值的函數-Python

[英]how to zip function with two arrays as a return value - Python

如何從具有單獨功能的兩個隨機生成的列表中創建元組? zip函數將只創建這兩個數組的整體元組,但我需要像(1,2),(3,4)這樣對數字進行耦合。 謝謝。

import random
def ars():
    arr1 = []
    arr2 = []
    for i in range(10):
        x = random.randrange(100)
        arr1.append(x)
    for j in range(10):
        y = random.randrange(100)
        arr2.append(y)
    return(arr1,arr2)

x = ars()
print x
y = zip(ars())
print y

zip函數接受多個iterables作為其參數,因此您只需使用* (splat運算符)從返回的元組中解壓縮值即可:

y = zip(*ars())

使用zip(([1], [2]))僅提交一個可迭代的(該元組)。

zip(*([1], [2]))中,從元組中解壓縮2個列表,因此zip接收2個可迭代項。

您可以避免使用地圖壓縮

def ars(arr_len, rand_max):
    return [map(random.randrange, [rand_max]*2) for x in range(arr_len)]

調用ars,例如:ars(10,100),如果您真的需要元組而不是列表,請將map語句包裝在tuple()函數中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM