You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python随机矩阵如何实现最大负元素列与最小正元素列互换

实现逻辑
  • 首先初始化两个关键值的记录变量:因为随机数取值范围是-10到10,所以把全局最大负元素初始值设为-11(小于所有可能生成的负数),全局最小正元素初始值设为11(大于所有可能生成的正数),同时初始化两个变量分别记录这两个元素对应的列索引,初始值为-1。
  • 双层遍历矩阵所有元素:
    • 遇到小于0的负数时,如果当前值比已记录的最大负元素更大,就更新最大负元素的值,同时同步更新它所在的列索引
    • 遇到大于0的正数时,如果当前值比已记录的最小正元素更小,就更新最小正元素的值,同时同步更新它所在的列索引
  • 处理特殊边界:如果遍历完成后列索引仍为-1,说明矩阵里不存在对应类型的元素(全正/全负/含0但缺对应类数值),直接给出提示。
  • 正常拿到两个目标列索引后,逐行交换这两个列位置的元素,即可得到互换后的矩阵,不会修改原始矩阵数据。
    注:代码中列索引从0开始计数,和输入列的顺序一一对应,0值既不纳入负数统计也不纳入正数统计,符合题目规则。
补全后的完整代码
import random
print("Enter number of cols:")
n = int(input())
print("Enter number of rows:")
m = int(input())

rows, cols = (m, n)
nums=[]
for i in range(rows):
    col = []
    for j in range(cols):
        col.append(random.randint(-10, 10))
    nums.append(col)

print("原始生成的矩阵:")
for row in nums:
    print(row)

updatedNums = []
# 初始化记录变量
max_neg = -11
max_neg_col = -1
min_pos = 11
min_pos_col = -1

# 遍历矩阵定位目标元素和对应列
for i in range(rows):
    for j in range(cols):
        current_val = nums[i][j]
        # 处理最大负元素逻辑
        if current_val < 0:
            if current_val > max_neg:
                max_neg = current_val
                max_neg_col = j
        # 处理最小正元素逻辑
        if current_val > 0:
            if current_val < min_pos:
                min_pos = current_val
                min_pos_col = j

# 边界判断
if max_neg_col == -1:
    print("\n错误:当前生成的矩阵没有负数元素,无法定位最大负元素所在列")
elif min_pos_col == -1:
    print("\n错误:当前生成的矩阵没有正数元素,无法定位最小正元素所在列")
else:
    # 拷贝原矩阵到新矩阵,避免修改原始数据
    updatedNums = [row.copy() for row in nums]
    # 逐行交换两列元素
    for i in range(rows):
        updatedNums[i][max_neg_col], updatedNums[i][min_pos_col] = updatedNums[i][min_pos_col], updatedNums[i][max_neg_col]
    # 输出结果
    print(f"\n全局最大负元素为 {max_neg},所在列索引为 {max_neg_col}")
    print(f"全局最小正元素为 {min_pos},所在列索引为 {min_pos_col}")
    print("\n互换两列后的矩阵:")
    for row in updatedNums:
        print(row)
运行示例

某次运行生成原始矩阵如下时:

[-8, -2, 3, 5]
[-4, -2, 3, 6]

遍历后得到最大负元素为-2(列索引1),最小正元素为3(列索引2),交换后输出结果为:

[-8, 3, -2, 5]
[-4, 3, -2, 6]

内容的提问来源于stack exchange,提问作者Полишук Макс

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 23:57:14