首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >比较两个不同格式的列表

比较两个不同格式的列表
EN

Stack Overflow用户
提问于 2019-11-22 04:23:29
回答 3查看 51关注 0票数 1

我有两份清单:

代码语言:javascript
运行
复制
influx = [u'mphhos-fnwp-010101-2', 
          u'mphhos-fnwp-010101-1', 
          u'mphhos-fnwp-010101-7', 
          u'mphhos-fnwp-010101-10', 
          u'mphhos-fnwp-010101-9', 
          u'mphhos-fnwp-010101-4', 
          u'mphhos-fnwp-010101-3', 
          u'mphhos-fnwp-010101-8', 
          u'mphhos-fnwp-010101-6', 
          u'mphhos-fnwp-010101-5', 
          u'mphhos-fnwp-010101-11'] 

etcd =[u'/xymon/fnwp/mphhos/mphhos-fnwp-010101-4', 
       u'/xymon/fnwp/mphhos/mphhos-fnwp-010101-9', 
       u'/xymon/fnwp/mphhos/mphhos-fnwp-010101-1', 
       u'/xymon/fnwp/mphhos/mphhos-fnwp-010101-10', 
       u'/xymon/fnwp/mphhos/mphhos-fnwp-010101-3', 
       u'/xymon/fnwp/mphhos/mphhos-fnwp-010101-6', 
       u'/xymon/fnwp/mphhos/mphhos-fnwp-010101-7', 
       u'/xymon/fnwp/mphhos/mphhos-fnwp-010101-8', 
       u'/xymon/fnwp/mphhos/mphhos-fnwp-010101-11', 
       u'/xymon/fnwp/mphhos/mphhos-fnwp-010101-2', 
       u'/xymon/fnwp/mphhos/mphhos-fnwp-010101-5']

Etcd是父级列表,我想将influx与Etcd进行比较。

1.)我想要获取列表中不存在的所有元素并返回它们。

2.)如何通过省略/xymon/fnwp/mphhos/将etcd列表转换为涌入列表格式

上面的任何一个问题都会给出我的解决方案。

我尝试了很多方法,但我没有得到我的解决方案,因为它们是不同的格式。

我将通过执行set(etcd)-set(influx)得到我的答案,但由于它们的格式不同,所以我将获得列表中的所有项目。

EN

回答 3

Stack Overflow用户

发布于 2019-11-22 04:56:50

str.rsplit

代码语言:javascript
运行
复制
[x for x in etcd if x.rsplit('/', 1)[1] not in influx]

Per rafaelc的建议

代码语言:javascript
运行
复制
infx = set(influx)
[x for x in etcd if x.rsplit('/', 1)[1] not in infx]
票数 1
EN

Stack Overflow用户

发布于 2019-11-22 04:29:17

一个简单的解决方案是删除前缀

代码语言:javascript
运行
复制
for i, char in enumerate(etcd): 
    char = char.replace('/xymon/fnwp/mphhos/', '')
    etcd[i] = char

然后你可以使用set()找出不同之处。

票数 0
EN

Stack Overflow用户

发布于 2019-11-22 04:32:06

代码语言:javascript
运行
复制
influx = [u'mphhos-fnwp-010101-2',
          u'mphhos-fnwp-010101-1',
          u'mphhos-fnwp-010101-7',
          u'mphhos-fnwp-010101-10',
          u'mphhos-fnwp-010101-9',
          u'mphhos-fnwp-010101-4',
          u'mphhos-fnwp-010101-3',
          u'mphhos-fnwp-010101-8',
          u'mphhos-fnwp-010101-6',
          u'mphhos-fnwp-010101-5',
          u'mphhos-fnwp-010101-11']

etcd =[u'/xymon/fnwp/mphhos/mphhos-fnwp-010101-4',
       u'/xymon/fnwp/mphhos/mphhos-fnwp-010101-9',
       u'/xymon/fnwp/mphhos/mphhos-fnwp-010101-1',
       u'/xymon/fnwp/mphhos/mphhos-fnwp-010101-10',
       u'/xymon/fnwp/mphhos/mphhos-fnwp-010101-3',
       u'/xymon/fnwp/mphhos/mphhos-fnwp-010101-6',
       u'/xymon/fnwp/mphhos/mphhos-fnwp-010101-7',
       u'/xymon/fnwp/mphhos/mphhos-fnwp-010101-8',
       u'/xymon/fnwp/mphhos/mphhos-fnwp-010101-11',
       u'/xymon/fnwp/mphhos/mphhos-fnwp-010101-2',
       u'/xymon/fnwp/mphhos/mphhos-fnwp-010101-5']

etcd = [x.replace('/xymon/fnwp/mphhos/', '') for x in etcd]

# or using regex
# etcd = [re.sub('/xymon/fnwp/mphhos/', '', x) for x in etcd]
diff = set(etcd) - set(influx)

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

https://stackoverflow.com/questions/58983156

复制
相关文章

相似问题

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