我有一个拉动端口并将它们附加到列表的函数。
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']
如何附加我的列表,使其不嵌套并分成单个字符串?
答案 0 :(得分:8)
您可以使用list.extend(通过附加给定列表中的所有项目来扩展列表)而不是append
(添加项目到最后列表之前的),然后以字符串形式加入列表:
avail_port.extend([k.decode("utf8") for k in spl_port])