在附加到列表之前展平列表

时间:2017-03-10 17:05:22

标签: python

我有一个拉动端口并将它们附加到列表的函数。

def port_lookup(cmd=raidcom, a=awk):
    chk_port = subprocess.Popen('{cmd} get port | {a}'.
                                format(cmd=cmd, a=a), stdout=subprocess.PIPE,
                                stderr=subprocess.PIPE, shell=True)
    (out, err) = chk_port.communicate()
    spl_port = out.split()
    port_chk = ", ".join([k.decode("utf8") for k in spl_port])
    avail_port.append(port_chk)
    return

如果没有join()方法,由于解码(“utf8”),我将获得以下嵌套列表:

avail_port = [['CL1-A', 'CL1-B', 'CL1-C', 'CL1-D', 'CL2-A',
               'CL2-B', 'CL2-C', 'CL2-D', 'CL3-A', 'CL3-B',
               'CL3-C', 'CL3-D', 'CL4-A', 'CL4-B', 'CL4-C', 
               'CL4-D']]

使用join()方法将列表转换为一个字符串。

avail_port = ['CL1-A, CL1-B, CL1-C, CL1-D, CL2-A,
               CL2-B, CL2-C, CL2-D, CL3-A, CL3-B, 
               CL3-C, CL3-D, CL4-A, CL4-B, CL4-C, 
               CL4-D']

如何附加我的列表,使其不嵌套并分成单个字符串?

1 个答案:

答案 0 :(得分:8)

您可以使用list.extend通过附加给定列表中的所有项目来扩展列表)而不是append添加项目到最后列表之前的),然后以字符串形式加入列表:

avail_port.extend([k.decode("utf8") for k in spl_port])