簡體   English   中英

加入2列表並轉換為元組

[英]join 2 list and convert into a tuple

我在下面的代碼部分中有這段代碼。

我必須返回一個列表,其中第二個參數中的所有函數都已應用於元組格式類型中第一個參數的元素,例如此2列表

objs = [(1,2),[1,3,4,5,6,7],[0]]
funcs = [len,sum]
I must return #--> [(2, 3, <class 'tuple'>), (6, 26, <class 'list'>), (1, 0, <class 'list'>)]

謝謝你,如果你能幫忙的話

objs = [(1,2),[1,3,4,5,6,7],[0]]
funcs = [len,sum,type]


def calc_len(objs, funcs):
    t = []
    z = []
    for i in objs:
        print(i) # To check output
        z.append(i) # Create a list Z of "i"
        #print("Z : ", z)
        # Then I apply each function from the second list
        for j in funcs:
            if j==len:
                print("Lenght:",j(i))
            elif j==sum:
                print("Sum :" ,j(i))
            else:
                print("Type :",j(i))
            t.append(j(i))
 # How Turn that list into a tuple and add to list to return
        print (t)



print(calc_len(objs, funcs))
Should return #--> [(2, 3), (6, 26), (1, 0)]

結果如下

[358]: print(calc_len(objs, funcs))
(1, 2)
Z :  [(1, 2)]
Lenght: 2
Sum : 3
Type : <class 'tuple'>
[2, 3, <class 'tuple'>]
[1, 3, 4, 5, 6, 7]
Z :  [(1, 2), [1, 3, 4, 5, 6, 7]]
Lenght: 6
Sum : 26
Type : <class 'list'>
[2, 3, <class 'tuple'>, 6, 26, <class 'list'>]
[0]
Z :  [(1, 2), [1, 3, 4, 5, 6, 7], [0]]
Lenght: 1
Sum : 0
Type : <class 'list'>
[2, 3, <class 'tuple'>, 6, 26, <class 'list'>, 1, 0, <class 'list'>]

您可以使用列表推導將每個函數應用於參數,並使用結果構建元組。

result = [ tuple(f(x) for f in funcs) for x in objs ]
objs = [(1,2),[1,3,4,5,6,7],[0]]
result =  [(len(item),sum(item),type(item)) for item in objs]
print (result)

輸出:

[(2, 3, <class 'tuple'>), (6, 26, <class 'list'>), (1, 0, <class 'list'>)]

objs = [(1,2),[1,3,4,5,6,7],[0]]
funcs = ['len','sum','type']

def calc_len(objs, funcs):
    result = []
    for item in objs:
        r = []
        for func in funcs:
            if func == 'len':
                r.append(len(item))
            if func == 'sum':
                r.append(sum(item))
            if func == 'type':
                r.append(type(item))
        result.append(tuple(r))
    return result

print(calc_len(objs, funcs))

輸出:

[(2, 3, <class 'tuple'>), (6, 26, <class 'list'>), (1, 0, <class 'list'>)]

暫無
暫無

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

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