【发布时间】:2015-11-30 13:04:06
【问题描述】:
我有一个这样的列表
results = [1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0]
我想把这个列表分开,把项目分成4个元素:
size = 4
group_list_4 = [results[i:i+size] for i in range(0, len(results), size)]
print "List:" , group_list_4
这个命令的结果是这样的:
List: [[1, 0, 0, 0], [1, 0, 0, 0], [0, 0, 0, 1], [1, 0, 0, 0], [0, 0, 0, 1], [0, 0, 1, 0], [1, 0, 0, 0], [1, 0, 0, 0], [0, 0, 0, 1], [0, 0, 0, 1], [0, 0, 0, 1], [1, 0, 0, 0], [0, 0, 0, 1], [0, 0, 0, 1], [0, 0, 0, 1], [1, 0, 0, 0], [1, 0, 0, 0]]
在每个 4 组中,我必须检查 1 个元素在哪里,因此如果 4 组中的第一个元素是 1,则 return "first" 如果第二个 return "second" 直到 4 并且该值放入 json_obj['value_1_in_list'] 中。
lista = []
for record in records:
json_obj = {}
json_obj['filename'] = filename
json_obj['value_1_in_list'] = put element 1 on list
lista.append(json_obj)
在上面的代码中,我有一个名为 lista 的列表,我在其中创建 JSON obj,条件 for record in records: 将执行 17 次,我还有 17 个包含 4 个元素的小列表。每次执行 for 循环都会创建一个 JSON。
现在我想在这个for loop 中包含 1(first,second,third,fourth) 的值在一个 4elements 列表中,下一次执行 for 循环以包含 results list 中的另一个小列表包含 4elements 我该怎么做,有什么帮助吗?
Lists with four elements always contain only one 1.
【问题讨论】:
-
如果一个列表中有两个
1怎么办 -
那么你想要的输出是什么?
["first", "first", "fourth"...]? -
@JonSurrell 我将返回所有 1 的值
-
如果没有 1 怎么办?
标签: python json list if-statement for-loop