将字符串输出解析为 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 ])
我有这个函数 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 ])