首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用Python将字符串解析为重叠对

用Python将字符串解析为重叠对
EN

Stack Overflow用户
提问于 2017-04-29 19:55:33
回答 3查看 283关注 0票数 2

我是Python新手,我正试图将节点路径列表解析为路径中的每一对节点路径。例如:

我有一个列表(对于节点x、y和z)如下所示

代码语言:javascript
运行
复制
list = ['xyzx', 'xzyx', 'zxyz', 'zyxz', 'yxzy', 'yzxy']

我可以在任意点拆分每个字符串,但我需要将它们分割成重叠的有序对,这样才能得到这样的结果:

代码语言:javascript
运行
复制
newList = [('xy', 'yz', 'zx'), ('xz', 'zy', 'yx'), etc..]

或者每个排列的单独列表也会有效:

代码语言:javascript
运行
复制
newList1 = ['xy', 'yz', 'zx']
newList1 = ['xz', 'zy', 'yx']
etc..

有什么想法吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-04-29 19:59:27

您可以使用列表理解来生成它们,如:

代码语言:javascript
运行
复制
l = ['xyzx', 'xzyx', 'zxyz', 'zyxz', 'yxzy', 'yzxy']

[tuple(s[i:i+2] for i in range(len(s)-1)) for s in l]

# [('xy', 'yz', 'zx'), ('xz', 'zy', 'yx'),
#  ('zx', 'xy', 'yz'), ('zy', 'yx', 'xz'),
#  ('yx', 'xz', 'zy'), ('yz', 'zx', 'xy')]

请注意,您应该避免将列表命名为" list ",因为这是Python内置函数。

票数 2
EN

Stack Overflow用户

发布于 2017-04-29 20:00:06

您可以使用python列表理解。对于字符串s:

代码语言:javascript
运行
复制
[s[i:i+2] for index in range(len(s) - 1)]

si:i+2接受一个从i到i+2的子字符串,这是不包含的。

票数 0
EN

Stack Overflow用户

发布于 2017-04-29 20:02:24

你可以用这个:

代码语言:javascript
运行
复制
def get_overlapping_pairs(string):
    ret = [] # we will return this later
    for i in range(len(string)-1): # loop through all indices except the last one
        ret.append(string[i:i+2]) # append to ret the two characters
                                  # beginning at that index
    return tuple(ret) # convert to tuple

def get_overlapping_pairs_for_each(stringlist):
    ret = []
    for string in stringlist: # loop through each string
        ret.append(get_overlapping_pairs(string)) # append the overlapping
                                                  # pairs for that string
    return ret

注意,我们没有在第一个函数中查看循环中的最后一个索引。这是因为如果我们这样做了,当我们试图查看以该索引开头的两个字符时,它将生成一个IndexError --当我们到达该索引时,只剩下一个字符。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43699916

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档