将字符串拆分成元组列表?

2024-10-06 15:28:52 发布

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

我有一个键值对字符串,不幸的是它们被同一个符号分隔开。有没有办法不使用lambda就把它“拆分”成一个元组列表?

以下是我所拥有的:

Moscow|city|London|city|Royston Vasey|vilage

我想要的:

[("Moscow","city"), ("London", "city")....] 

Tags: lambda字符串city列表符号键值元组london
3条回答

这很简单真的。。。

首先,将'|'上的字符串拆分,然后将zip其他每个元素拆分在一起:

data = s.split('|')
print zip(data[::2],data[1::2])

在python3中,您需要:print(list(zip(data[::2],data[1::2]))

def group(lst, n):
    for i in range(0, len(lst), n):
        val = lst[i:i+n]
        if len(val) == n:
            yield tuple(val)

a = 'Moscow|city|London|city|Royston Vasey|vilage'
list(group(a.split('|'), 2))

输出是[('Moscow', 'city'), ('London', 'city'), ('Royston Vasey', 'vilage')]

s = 'Moscow|city|London|city|Royston Vasey|vilage'

it = iter(s.split('|'))
print [(x,next(it)) for x in it]

相关问题 更多 >