0
点赞
收藏
分享

微信扫一扫

趣店集团golang一面要个20K,Channel什么情况下会出现死锁,有遇到过吗?

北冥有一鲲 2024-05-28 阅读 28
人工智能

1
按行遍历这个Excel中含1的单元格返回该单元格所在列

2

到这一步能成功返回结果

import pandas as pd

# 读取Excel文件
df1 = pd.read_excel('问题-知识点矩阵.xlsx')

class knowledge:
    def __init__(self, name):
        self.name = name
        flag=0

class question:
    def __init__(self, name):
        self.name = name
        self.knowledge = []
        self.flag=0

class student:
    def __init__(self, name):
        self.name = name
        self.question= []

# 创建student列表
students = []
questions = []

knowledges=[]

# 第一列的列名
first_column_name = df1.columns[0]


students = []


def get_student_results(file_path):
    # 读取Excel文件
    df = pd.read_excel(file_path)

    # 初始化一个空字典来存储结果
    results = {}

    # 遍历数据框的每一行
    for index, row in df.iterrows():
        # 初始化student对象
        student_obj = student(row['学生'])

        # 遍历除'学生'列之外的其他列
        for col in df.columns[1:]:
            # 检查学生的答案是否为1(正确)或0(错误)
            if row[col] == 1:
                flag = 1
            else:
                flag = 0

            # 创建question对象,并设置flag
            question_obj = question(col)
            question_obj.flag = flag

            # 将question对象添加到student对象的question列表中

            for index, value in df1[first_column_name].items():
                # 找到当前行中所有包含1的列
                ones_columns = [col for col in df1.columns[1:] if df1.at[index, col] == 1]
                # 遍历ones_columns列表中的每个列名
                # 创建question对象
                #print(question_obj.name)
                if question_obj.name ==  value:
                    #value  是 题目

                    #print(value)
                    for col in ones_columns:
                        # 将question对象添加到questions列表中
                        question_obj.knowledge.append(col)
                questions.append(question_obj)



            student_obj.question.append(question_obj)



            # 遍历第一列的所有元素

        # 将student对象添加到students列表中
        students.append(student_obj)
get_student_results('sp原始表.xlsx')
# 遍历student列表,打印
for student in students:
    print(student.name)
    for question in student.question:
        print(question.name, question.flag)
        for knowledge in question.knowledge:
            print(knowledge)



在这里插入图片描述
分别返回 题目:答对还是打错

涉及到的知识点包括

成功获取集合:

import pandas as pd

# 读取Excel文件
df1 = pd.read_excel('问题-知识点矩阵.xlsx')

class knowledge:
    def __init__(self, name):
        self.name = name
        flag=0

class question:
    def __init__(self, name):
        self.name = name
        self.knowledge = []
        self.flag=0

class student:
    def __init__(self, name):
        self.name = name
        self.question= []

# 创建student列表
students = []
questions = []

knowledges=[]

# 第一列的列名
first_column_name = df1.columns[0]


students = []


def get_student_results(file_path):
    # 读取Excel文件
    df = pd.read_excel(file_path)

    # 初始化一个空字典来存储结果
    results = {}

    # 遍历数据框的每一行
    for index, row in df.iterrows():
        # 初始化student对象
        student_obj = student(row['学生'])

        # 遍历除'学生'列之外的其他列
        for col in df.columns[1:]:
            # 检查学生的答案是否为1(正确)或0(错误)
            if row[col] == 1:
                flag = 1
            else:
                flag = 0

            # 创建question对象,并设置flag
            question_obj = question(col)
            question_obj.flag = flag

            # 将question对象添加到student对象的question列表中

            for index, value in df1[first_column_name].items():
                # 找到当前行中所有包含1的列
                ones_columns = [col for col in df1.columns[1:] if df1.at[index, col] == 1]
                # 遍历ones_columns列表中的每个列名
                # 创建question对象
                #print(question_obj.name)
                if question_obj.name ==  value:
                    #value  是 题目

                    #print(value)
                    for col in ones_columns:
                        # 将question对象添加到questions列表中
                        question_obj.knowledge.append(col)
                questions.append(question_obj)



            student_obj.question.append(question_obj)



            # 遍历第一列的所有元素

        # 将student对象添加到students列表中
        students.append(student_obj)
get_student_results('sp原始表.xlsx')


right=[]
worng=[]
hunhe=[]
name=[]


# 更改类名为AllResults以避免与内置函数all()冲突
class AllResults:
    def __init__(self, name):
        self.name = name
        self.right = []  # 答对的知识点
        self.wrong = []  # 答错的知识点
        self.hunhe = []  # 交集,即答对和答错中都有的知识点


# 假设students是已经定义好的学生列表
# students = [...]

# 初始化存储结果的列表
all_results_list = []

for student in students:
    # 创建AllResults实例
    all_results = AllResults(student.name)

    right_set = set()  # 使用集合来避免重复
    wrong_set = set()

    for question in student.question:
        if question.flag == 1:
            right_set.update(question.knowledge)
        elif question.flag == 0:
            wrong_set.update(question.knowledge)

    # 更新AllResults实例的属性
    all_results.right.extend(right_set)
    all_results.wrong.extend(wrong_set)
    all_results.hunhe.extend(right_set.intersection(wrong_set))

    # 移除交集部分
    all_results.right = list(right_set - wrong_set)
    all_results.wrong = list(wrong_set - right_set)

    # 添加到结果列表
    all_results_list.append(all_results)

# 遍历all_results_list,写入txt文件
for i, all_results in enumerate(all_results_list):
    with open(f'{all_results.name}.txt', 'w') as f:
        f.write(f'{all_results.name}\n')
        f.write(f'答对知识点:{all_results.right}\n')
        f.write(f'答错知识点:{all_results.wrong}\n')
        f.write(f'交集知识点:{all_results.hunhe}\n')


下面开始判断
sk:

举报

相关推荐

0 条评论