此列表:
count.index.names
给予
data=[[{'t1':'text1.txt','date1':'class1'}],[{'t2':'text2.txt','date2':'class2'}]]
data
,我想把它变成这样: 添加了 EDIT 括号
[[{'t1': 'text1.txt', 'date1': 'class1'}],
[{'t2': 'text2.txt', 'date2': 'class2'}]]
这意味着:
创建一个列表,其中的每个子列表将由一个词典组成,其中键将是第一个子列表中第一个词典的 value ,而< strong> value 将是第一个子列表的第二个字典的 value ,以此类推。
我的尝试是这样的:
[[{'text1.txt': 'class1'}], [{'text2.txt': 'class2'}]]
答案 0 :(得分:2)
遍历嵌套列表中的每个字典,并通过julia_setup
方法为每个 public static int findMultipleOfThree(int[] arr)
{
int max_index = -1; //if it does not find a multiple of 3 it will return -1
for (int i = 0; i < arr.length-1; i++)
{
if(arr[i]%3==0)
{
if(i>max_index)
max_index = i;
}
}
return arr[max_index];
}
这样的字典创建一个元组。转换为元组后,您可以使用values()
从元组创建字典,像这样tuple(dict.values())
注意::如果您的词典中只有两个键,则只有它可以工作。
dict()
输出:
dict([tuple(dict.values())])
答案 1 :(得分:0)
尝试一下:
data=[[{'t1':'text1.txt','date1':'class1'}],[{'t2':'text2.txt','date2':'class2'}]]
all_vals = [];
for i in data:
for j in i:
for key in j:
all_vals.append(j[key])
new_list = [];
for i in range(0,len(all_vals)-1):
if (i % 2) == 0:
new_dict = {};
new_dict = {all_vals[i]:all_vals[i+1]}
new_list.append(new_dict)
else:
continue
print(new_list)
输出:
[{'text1.txt': 'class1'}, {'text2.txt': 'class2'}]
此代码不管列表的长度如何都有效。
答案 2 :(得分:0)
您的代码完成了大部分工作。您可以添加另一行以获得所需的结果:
In [108]: se
Out[108]: [dict_values(['text1.txt', 'class1']), dict_values(['text2.txt', 'class2'])]
In [109]: [[{list(x)[0]:list(x)[1]} for x in se]]
Out[109]: [[{'text1.txt': 'class1'}, {'text2.txt': 'class2'}]]
答案 3 :(得分:0)
以下功能应将输入转换为您要求的输出。
def convert_to_list_of_list_of_dictionaries(input_dictionaries):
ret_dictionaries = []
for inp in input_dictionaries:
k, v = inp[0].values()
ret_dictionaries.append({k, v})
return ret_dictionaries
但是,输入/输出中有些事情很少涉及,并且使数据更难以使用。
在输入端,数据被包装在一个额外的列表中,在这种情况下,该列表不提供任何功能,并迫使您索引内部列表的第一个元素以访问字典k, v = inp[0].values()
。在输出方面,我们正在做同样的事情,这使得迭代输出变得更加困难。看起来像这样:
# psuedocode
for kv in reformatted_outputs:
unwrapped_dict = kv[0]
key, value = next(iter(unwrapped_dict.items()))
# process key and value
相反,如果您的输出格式为“ {'text1.txt':'class1','text2.txt':'class2'}`,则可以处理以下数据:
key, value in reformatted_outputs.items():
# process key and value
如果您有能力修改正在处理的内容的输入和输出,则可以为您节省一些麻烦,也可以为任何正在工作的人省去一些头伤。
如果您想修改输出格式,则函数可能类似于:
def convert_to_single_dictionary(input_dictionaries):
ret = {}
for inp in input_dictionaries:
print(inp)
# it looks like the input data is being wrapped in an extra list
k, v = inp[0].values()
ret[k] = v
return ret
希望这对您有所帮助,感谢您提出问题!