将字符串输出解析为 python 数据结构

Parsing a string output into python data structures

我有这个函数 returns 一个字符串变量:

partition_ = partition(population)

这个输出: "[{'3', '4'}, {'1', '2', '5', '6', '7', '8', '9'}]"

我想将此输出分配给此函数:

B = nx_comm.modularity(F1, [{'3', '4'}, {'1', '2', '5', '6', '7', '8', '9'}])

但是因为它是一个字符串,模块化功能不接受它,因为我猜是引号。 谁能帮我解决这个问题?

提前致谢。

你需要的是一个将输出字符串解析成你想要的格式的函数。这是我制作的一个简单的解析器,应该可以创建您需要的输出。让我知道它是否有效。

partition_ = "[{'3', '4'}, {'1', '2', '5', '6', '7', '8', '9'}]"


def custom_parser(string):

    list_of_sets = []

    temp = []

    begin_set = False

    for char in string:

        if begin_set:

            if char == '}':

                begin_set = False

                temp2 = set(temp)

                list_of_sets.append(temp2)

                temp = []

            elif char not in ['\'', ',', ' ']:

                temp.append(char)

        if char == '{':

            begin_set = True

    return list_of_sets


new_partition_ = custom_parser(partition_)

试试这个

B = nx_comm.modularity(F1, [int(j)  for i in partition_ for j in i ])