Python如何使用join函数连接列表列表

时间:2011-09-26 21:38:23

标签: python

我是Python新手。有关于加入功能的问题。

masterlist = [
    ('ap172', ['33', '212-583-1173', '19 Boxer Rd.', 'New York', 'NY', '10005']),
    ('axe99', ['42', '212-582-5959', '315 W. 115th Street, Apt. 11B', 'New York', 'NY', '10027'])
]

我想打印由pipe分隔的列表的每个元素。

如果我尝试:

for i in masterlist:
    mystring = '|'.join(i)                                      
    print mystring

错误是:

TypeError: sequence item 1: expected string, list found

所以我在努力:

for i in masterlist:
    mystring = i[0] 
    mystring += '|'.join(i[1])                                  
    print mystring

我得到了:

ap17233|212-583-1173|19 Boxer Rd.|New York|NY|10005
axe9942|212-582-5959|315 W. 115th Street, Apt. 11B|New York|NY|10027

所以它有效,但想知道是否有更好的方法可以使用连接函数加入上述主列表?

4 个答案:

答案 0 :(得分:3)

我认为在for循环中拆分元组会更清晰。

for identifier, data in masterlist:
     print "%s%s" %(identifier, '|'.join(data))

答案 1 :(得分:1)

为了得到你所得到的,你可以尝试

for i in masterlist:
    print i[0] + '|'.join(i[1])

为了得到我认为你的想法,你可以试试这个

for i in masterlist:
    print i[0] + '|' + '|'.join(i[1])

有许多方法可以做到这一点,这些方法只有2个。

答案 2 :(得分:1)

for i in masterlist:
    print '|'.join([i[0]] + i[1])

答案 3 :(得分:1)

from itertools import chain
for symbol, items in masterlist:
    print "|".join(chain( [symbol], items))