鱼C论坛

 找回密码
 立即注册
查看: 776|回复: 5

求助2024013101

[复制链接]
发表于 2024-1-31 11:22:27 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 清風 于 2024-1-31 11:23 编辑

可能我之前的问题没有表达清楚:

1.我已经 定义了函数

def exclude_rows_and_cols():

..........

return exclude_rules(sheet)


该函数储存的是:{'sheet1': {'排除行': [0, 1], '排除列': [776456368743]}, 'sheet2': {'排除行': [0, 1, 2, 3], '排除列': [1148601586]},'sheet3': {'排除行': [0, 1], '排除列': [776456368743]}, 'sheet4': {'排除行': [0, 1, 2, 3], '排除列': [1148601586]}}这样的结果。


然后我怎么样才能取出上述储存结果和现有sheet名逐一比对,当sheet同名时自动调用相应的行/列排除规则?

我现在调用函数exclude_rows_and_cols()时总是让我重复输入之前已经录入过的规则,其实我只想调用已经储存好的结果.........

回复请注意python格式


可能我自己死循环了,大家别笑话我~~





本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2024-1-31 11:22:57 | 显示全部楼层
不用担心,我们来解决你的问题!你遇到的问题是每次调用`exclude_rows_and_cols()`函数时都需要重新输入规则。这是因为你每次调用函数时都会执行`exclude_rules(sheet)`,导致重新录入规则。

为了解决这个问题,你可以将储存规则的字典定义为函数外部的全局变量,在函数中直接引用该全局变量。这样,每次调用函数时就可以直接使用之前存储的规则,而无需重新输入。

下面是修改后的代码示例:
# 定义全局变量,用于存储规则
rules = {
    'sheet1': {'排除行': , '排除列': },
    'sheet2': {'排除行': , '排除列': },
    'sheet3': {'排除行': , '排除列': },
    'sheet4': {'排除行': , '排除列': }
}

def exclude_rows_and_cols(sheet_name):
    # 直接引用全局变量
    return rules[sheet_name]

# 调用函数并传入sheet名
sheet_name = 'sheet1'
result = exclude_rows_and_cols(sheet_name)
print(result)

在调用`exclude_rows_and_cols()`函数时,你可以根据需要传入不同的sheet名。函数会根据传入的sheet名自动调用相应的行/列排除规则,而无需重新输入。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-1-31 11:27:59 | 显示全部楼层
FishC 发表于 2024-1-31 11:22
不用担心,我们来解决你的问题!你遇到的问题是每次调用`exclude_rows_and_cols()`函数时都需要重新输入规 ...

我没表达清楚。。。。
{'sheet1': {'排除行': [0, 1], '排除列': [776456368743]}, 'sheet2': {'排除行': [0, 1, 2, 3], '排除列': [1148601586]},'sheet3': {'排除行': [0, 1], '排除列': [776456368743]}, 'sheet4': {'排除行': [0, 1, 2, 3], '排除列': [1148601586]}}这样的结果就是调用函数才产生的啊,并不是预先设置好的........
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-1-31 11:28:44 | 显示全部楼层
清風 发表于 2024-01-31 11:27
我没表达清楚。。。。
{'sheet1': {'排除行': , '排 ...


抱歉,我的理解有误。如果你的规则是在调用函数时动态生成的,而不是事先设置好的,那么你可以将规则作为参数传递给函数。这样,每次调用函数时,你都可以传入不同的规则。下面是修改后的代码示例:
def exclude_rows_and_cols(rules, sheet_name):
    if sheet_name in rules:
        # 获取指定sheet名对应的规则
        sheet_rules = rules[sheet_name]
        # 在这里根据规则进行相应的操作
        print(f"正在处理 {sheet_name} 的数据,排除行:{sheet_rules['排除行']},排除列:{sheet_rules['排除列']}")
    else:
        print(f"未找到 {sheet_name} 对应的规则")

# 定义规则字典
rules = {
    'sheet1': {'排除行': [1, 2], '排除列': ['A', 'B']},
    'sheet2': {'排除行': [3, 4], '排除列': ['C', 'D']},
    'sheet3': {'排除行': [5, 6], '排除列': ['E', 'F']},
}

# 调用函数并传入规则和sheet名
sheet_name = 'sheet1'
exclude_rows_and_cols(rules, sheet_name)

在调用`exclude_rows_and_cols()`函数时,你需要传入两个参数:规则字典和要处理的sheet名。函数会根据传入的sheet名在规则字典中查找对应的规则,并进行相应的操作。如果找不到对应的规则,会输出相应的提示信息。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-1-31 11:29:49 | 显示全部楼层
FishC 发表于 2024-1-31 11:28
抱歉,我的理解有误。如果你的规则是在调用函数时动态生成的,而不是事先设置好的,那么你可以将规则作 ...

...........我迷糊了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-1-31 11:30:03 | 显示全部楼层
清風 发表于 2024-01-31 11:29
...........我迷糊了


抱歉让你感到迷糊。如果我还是没有理解你的问题,请尝试提供更具体的信息,我会尽力帮助你解决问题。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-22 03:53

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表