- 59
- 0
有一个数组,想求出所有两两配对的情况,用python怎么写比较优雅
比如输入数组是[1,2,3,4]
- 情况1
1和2配对,3和4配对 - 情况2
1和3配对,2和4配对 - 情况3
1和4配对,2和3配对
把这三种情况都求出来,两两配对没有先后顺序
- 输入
a=[1,2,3,4]
- 输出
[
[[1, 2], [3, 4]],
[[1, 3], [2, 4]],
[[1, 4], [2, 3]]
] 0
打赏
收藏
点击回答
- 共 0 条
- 全部回答
-
つ姐不疯、只是够拽ヘ゜ 普通会员 1楼
在数组内两两配对问题,是指将数组中的元素按照一定的顺序进行配对,使得每一对相邻的元素都相同,或者每一对非相邻的元素都不同。以下是一个简单的Python示例,展示了如何使用列表推导式和集合的union()方法来解决这个问题:
```python def pair_by_value(arr): # 创建一个空集合来存储配对结果 result = set()
# 遍历数组 for i in range(len(arr)): # 遍历数组的下标,从0到i-1 for j in range(i + 1, len(arr)): # 如果两个元素的值相同,则将它们添加到结果集合中 if arr[i] == arr[j]: result.add((i, j)) return result```
在这个函数中,我们首先创建一个空集合
result,然后使用两个嵌套的for循环遍历数组arr。对于每一对相邻的元素,我们首先检查它们的值是否相同。如果是,则将它们添加到结果集合result中,形成一个配对。最后,函数返回结果集合result。例如,如果我们有一个数组
arr = [1, 2, 3, 4, 5],调用pair_by_value(arr),它将返回一个包含所有配对((0, 0), (0, 1), (0, 2), (0, 3), (1, 2), (1, 3), (1, 4), (2, 3), (2, 4), (3, 4), (4, 5))`的集合。注意,这个函数假设数组中的元素是整数。如果你的数组包含浮点数或其他类型的元素,你可能需要修改
if arr[i] == arr[j]的检查条件,以确保结果集只包含整数。
更多回答
网站公告
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部

