首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在列表中获取所有可能的组合

在列表中获取所有可能的组合
EN

Stack Overflow用户
提问于 2011-02-24 14:51:19
回答 6查看 7.4K关注 0票数 7

假设我有这样的东西:

代码语言:javascript
运行
AI代码解释
复制
L1=['cat', 'dog', 'fish', 'rabbit', 'horse', 'bird', 'frog', 'mouse'...]

for x in L1:
    input1= open('file_%s'%(x), 'r')
    file1= pickle.load(input1)
    for x in L1:
        input2= open('file_%s'%(x), 'r')
        file2= pickle.load(input2)

我想得到文件的每一个组合,而不是重复已经做过的组合(一旦cat_dog完成,就不要再做dog_cat )。有没有办法让我这么做?我真正的列表是按字母顺序排列的,如果这有什么不同的话。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2011-02-24 15:20:04

您也可以将其作为生成器来执行:

代码语言:javascript
运行
AI代码解释
复制
L1=['cat', 'dog', 'fish', 'rabbit', 'horse', 'bird', 'frog', 'mouse']
tuples = [(x,y) for x in L1 for y in L1 if x != y]
for entry in tuples:
    if (entry[1], entry[0]) in tuples:
        tuples.remove((entry[1],entry[0]))
for pair in tuples:
    input1= open('file_%s'%(pair[0]), 'r')
    file1= pickle.load(input1)
    input2= open('file_%s'%(pair[1]), 'r')
    file2= pickle.load(input2)

在第一个循环之后,tuples的内容是:

代码语言:javascript
运行
AI代码解释
复制
('cat', 'dog')
('cat', 'fish')
('cat', 'rabbit')
('cat', 'horse')
('cat', 'bird')
('cat', 'frog')
('cat', 'mouse')
('dog', 'fish')
('dog', 'rabbit')
('dog', 'horse')
('dog', 'bird')
('dog', 'frog')
('dog', 'mouse')
('fish', 'rabbit')
('fish', 'horse')
('fish', 'bird')
('fish', 'frog')
('fish', 'mouse')
('rabbit', 'horse')
('rabbit', 'bird')
('rabbit', 'frog')
('rabbit', 'mouse')
('horse', 'bird')
('horse', 'frog')
('horse', 'mouse')
('bird', 'frog')
('bird', 'mouse')
('frog', 'mouse')
票数 5
EN

Stack Overflow用户

发布于 2011-02-24 14:59:59

实际上,您要问的是如何生成名称列表中包含的两个项的所有组合(而不是,这是它们的可能组合)。

这意味着您可以使用内置的itertools.combinations()生成器函数轻松(高效地)生成所需的名称对,而无需重复:

代码语言:javascript
运行
AI代码解释
复制
L1 = ['cat', 'dog', 'fish', 'rabbit', 'horse', 'bird', 'frog', 'mouse']

for pair in combinations(L1, 2):
    print(pair)
    input1 = open('file_%s' % pair[0], 'r')
    input2 = open('file_%s' % pair[1], 'r')

已处理的对:

代码语言:javascript
运行
AI代码解释
复制
('cat', 'dog')
('cat', 'fish')
('cat', 'rabbit')
('cat', 'horse')
('cat', 'bird')
('cat', 'frog')
('cat', 'mouse')
('dog', 'fish')
('dog', 'rabbit')
('dog', 'horse')
('dog', 'bird')
('dog', 'frog')
('dog', 'mouse')
('fish', 'rabbit')
('fish', 'horse')
('fish', 'bird')
('fish', 'frog')
('fish', 'mouse')
('rabbit', 'horse')
('rabbit', 'bird')
('rabbit', 'frog')
('rabbit', 'mouse')
('horse', 'bird')
('horse', 'frog')
('horse', 'mouse')
('bird', 'frog')
('bird', 'mouse')
('frog', 'mouse')
票数 22
EN

Stack Overflow用户

发布于 2011-02-24 14:58:40

itertools.combinations怎么样?

使用示例:

代码语言:javascript
运行
AI代码解释
复制
>>> list(itertools.combinations([1, 2, 3, 4, 5, 6], 2))
[(1, 2), (1, 3), (1, 4), (1, 5), (1, 6), (2, 3), (2, 4), (2, 5), (2, 6), (3, 4),
(3, 5), (3, 6), (4, 5), (4, 6), (5, 6)]

第一个参数是可迭代的,第二个是r,返回子序列的长度。

然后,您可以使用map或理解轻松地连接结果:

代码语言:javascript
运行
AI代码解释
复制
map(lambda x: x[0] + "_" + x[1], itertools.combinations(["cat", "dog", "fish"], 2)))

lambda中的x是一个r-sized元组。

上面的结果将是:

代码语言:javascript
运行
AI代码解释
复制
['cat_dog', 'cat_fish', 'dog_fish']
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5106228

复制
相关文章
基于AngularJS的过滤与排序
前面了解了AngularJS的使用方法,这里就简单的写个小程序,实现查询过滤以及排序的功能。 本程序中可以了解到:   1 angularjs的过滤器   2 ng-repeat的使用方法   3 控制器的使用   4 数据的绑定   程序设计分析   首先,如果要是先查询过滤,就要使用到AngularJS中的 过滤器filter 了。   直接在表达式的后面使用管道命令符 | ,按照下面的写法就可以达到一个过滤的效果: {{ persons | filter:query }}   通过使用
用户1154259
2018/01/17
2.4K0
基于AngularJS的过滤与排序
基于角色的访问控制(RBAC)
很多时候,需要对一些事物进行控制,如一个房间,为了不让人随便进,通常会装一把锁,如果要想进入,你必须得有一把钥匙,且还得和这个锁匹配才行。 基于此做一个抽象,其实包含三方面内容: 1)一个是被控制的事物,通常就算资源。 2)一个是想访问这些资源的人所必须拥有的东西,通常就算凭证。 3)还有一个就是进行凭证和资源的匹配。 Web应用的资源 网络时代绝大多数都是web应用。web应用的一大特点就是Client和Server。客户端发起一个请求,服务器就给出一个响应。 对客户端的要求只有一个,那就是要知道
腾讯NEXT学位
2020/03/25
9000
什么是基于角色的安全?
安全角色可以简化SQL Server中的权限。在本文中,解释了固定的服务器和数据库角色
用户1217611
2022/05/06
1.3K0
什么是基于角色的安全?
基于任务的导航设计
对于不同平台导航的交互形式与视觉样式,相信有不少的文章来介绍与总结。本文所介绍的是关于导航规划思路。一个比较小众的领域,基于任务的导航(Task based Navigation)。 目前产品主要使用基于对象的导航和基于任务的导航。相对来说的,纯粹的基于对象的导航的较为常见,但纯粹的基于任务的导航的产品却为数不多。不少业务复杂的产品会考虑混合使用这两种导航,主辅结合来尽可能覆盖用户的使用场景。 如何区分导航的组织方式? 最简单的的区分法,关注导航标签的命名方式。基于对象的导航,通常使用名词作为导航标签,标签
腾讯大讲堂
2018/02/12
6830
基于任务的导航设计
基于AngularJS的过滤与排序【转载】
  首先,如果要是先查询过滤,就要使用到AngularJS中的 过滤器filter 了。
用户3055976
2018/09/12
1.3K0
基于AngularJS的过滤与排序【转载】
基于angularJs和Bootstrap的计算器
源码下载地址:https://github.com/tianfayl/public 获取angularJs和Bootstrap学习资料:关注公众号回复:0402
IT架构圈
2018/06/01
6110
利用基于AngularJS的XSS实现提权
大家好,我是Shawar Khan。自我上次写作以来已经时隔好几个月了,这段时间我一直忙于不同的测试目标。最近我在某个目标中发现了一个有趣的XSS漏洞,通过该漏洞我可以将我的权限提升为管理员用户。
FB客服
2019/10/10
1.3K0
利用基于AngularJS的XSS实现提权
RBAC-基于角色的访问控制
RBAC 是基于角色的访问控制(Role-Based Access Control )在 RBAC 中,权限与角色相关联,用户通过成为适当角色的成员而得到这些角色的权限。这就极大地简化了权限的管理。这样管理都是层级相互依赖的,权限赋予给角色,而把角色又赋予用户,这样的权限设计很清楚,管理起来很方便。
HammerZe
2022/05/09
2.3K0
RBAC-基于角色的访问控制
RBAC:基于角色的权限访问控制
RBAC模型(Role-Based Access Control:基于角色的访问控制)模型是20世纪90年代研究出来的一种新模型,但其实在20世纪70年代的多用户计算时期,这种思想就已经被提出来,直到20世纪90年代中后期,RBAC才在研究团体中得到一些重视,并先后提出了许多类型的RBAC模型。其中以美国George Mason大学信息安全技术实验室(LIST)提出的RBAC96模型最具有代表,并得到了普遍的公认。
看、未来
2022/05/11
1.8K0
RBAC:基于角色的权限访问控制
[译] 用 NodeJS/JWT/Vue 实现基于角色的授权
在本教程中,我们将完成一个关于如何在 Node.js 中 使用 JavaScript ,并结合 JWT 认证,实现基于角色(role based)授权/访问的简单例子。
江米小枣
2020/06/15
3.3K0
【AngularJS】 # AngularJS入门
ng-app 指令定义一个 AngularJS 应用程序。 若不声明,将直接显示表达式。
全栈程序员站长
2022/09/15
23.6K0
【AngularJS】 # AngularJS入门
如何设置基于角色的访问Kubernetes集群
嘉宾博客文章最初发表在Infracloud上,作者是Infracloud软件开发人员Vivek Singh
CNCF
2020/03/19
1.6K0
基于AngularJS的个推前端云组件探秘
AngularJS是google设计和开发的一套前端开发框架,他能帮助开发人员更便捷地进行前端开发。AngularJS是为了克服HTML在构建应用上的不足而设计的,它非常全面且简单易学习,因此AngularJS快速的成为了javascript的主流框架。 一、Amazing的Angular AnguarJS的特性 方便的REST: RESTful逐渐成为了一种标准的服务器和客户端沟通的方式。你只需使用一行javascript代码,就可以快速的从服务器端得到数据。AugularJS将这些变成了JS对象,作为M
个推君
2018/03/21
1.4K0
基于AngularJS的个推前端云组件探秘
基于任务的导航设计 - 腾讯ISUX
对于不同平台导航的交互形式与视觉样式,相信有不少的文章来介绍与总结。本文所介绍的是关于导航规划思路。一个比较小众的领域,基于任务的导航(Task based Navigation)。 目前产品主要使用基于对象的导航和基于任务的导航。相对来说的,纯粹的基于对象的导航的较为常见,但纯粹的基于任务的导航的产品却为数不多。不少业务复杂的产品会考虑混合使用这两种导航,主辅结合来尽可能覆盖用户的使用场景。 如何区分导航的组织方式? 最简单的的区分法,关注导航标签的命名方式。基于对象的导航,通常使用名词作为导航标签,标签
腾讯ISUX
2018/06/29
5380
php基于RBAC(角色的访问控制)的设计
权限系统模块对于互联网产品是一个非常重要的功能,可以控制不同的角色合理的访问不同的资源从而达到安全访问的作用
友儿
2022/09/11
5820
Spring Cloud Security进行基于角色的访问控制
Spring Cloud Security是Spring Cloud框架下的安全模块,用于为分布式应用程序提供安全性。它提供了许多功能,如身份验证、授权和基于角色的访问控制。其中,基于角色的访问控制是Spring Cloud Security中非常重要的功能之一,它可以帮助开发者实现细粒度的权限控制。
堕落飞鸟
2023/04/14
1.1K0
基于springboot注解的shiro 授权及角色认证
用户登录后,需要验证是否具有指定角色指定权限。Shiro也提供了方便的工具进行判 断。 这个工具就是Realm的doGetAuthorizationInfo方法进行判断。
一个风轻云淡
2023/10/15
4630
基于springboot注解的shiro 授权及角色认证
【系统设计】基于角色的权限管理设计实现
内部运营系统的很多 API,涉及到外网正式环境下的用户信息变更。出于安全考虑,在设计之初保留了所有的操作记录,但这用于事后回查;真正要避免线上事故的发生,还需要权限管理。
心谭博客
2020/05/06
1.7K0
Greenplum基于角色的细粒度权限控制
本文描述问题及解决方法同样适用于 腾讯云 云数据仓库 PostgreSQL(CDWPG)。
岳涛
2021/04/29
1.9K3
Greenplum基于角色的细粒度权限控制
基于Python-Flask的权限管理:角色管理
一、前言 角色管理主要管理角色信息,不同的角色可以访问不同的菜单和数据。 image 二、后端实现 1.ORM类 from db import db from models.BaseModel imp
Python之道
2020/06/02
4K1
基于Python-Flask的权限管理:角色管理

相似问题

基于AngularJS角色的导航

28

基于角色的AngularJS路由

13

基于AngularJS角色的路由

11

Angularjs基于角色的路由

10

基于角色的导航项

328
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档