如何展平嵌套元组?

2024-10-02 20:33:14 发布

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

如何将电话和电子邮件与此列表的通讯员姓名相加:

list_key_value = [['Jibs', ('251871', 'jibs@stack.com')], 
                  ['Marco', ('0000000', 'marco@live.com')], 
                  ['Richard', ('099099', 'richar@hotmail.com')]]

像这样:

^{pr2}$

因为它来自Python 3.5中的命令:

list_key_value=[ [k,v] for k,v in dct.items()]
print(list_key_value)

Tags: keycomlive列表valuestack电子邮件list
3条回答

在python3.5中,您可以

list_key_value = [[name, *tp] for (name, tp) in list_key_value]

您希望解压嵌套列表,您可以在列表理解中使用多值解压,以达到以下目的:

list_key_value=[[k,i,j] for k,(i,j) in dct.items()]

更丑陋的方法,但目的是证明手段。在

我只是把它放在这里,没什么害处。在

lst = [['Jibs', ('251871', 'jibs@stack.com')], ['Marco', ('0000000', 'marco@live.com')], ['Richard', ('099099', 'richar@hotmail.com')]]
new_lst = []
for elem in lst:

    temp_lst = []
    for i in elem:   

        if isinstance(i, tuple):
            temp_lst.extend(i)
        else:
            temp_lst.append(i)
    new_lst.append(temp_lst)
print new_lst

# [['Jibs', '251871', 'jibs@stack.com'], ['Marco', '0000000', 'marco@live.com'], ['Richard', '099099', 'richar@hotmail.com']]

相关问题 更多 >