Python 嵌套列表的两个切片
有一个嵌套列表[[1,1]、[2,2]、[3,3]、[4,4]] 我想把这个列表重复三次。我属于[0,3],j=I-1,k=I-2 例如:Python 嵌套列表的两个切片,python,Python,有一个嵌套列表[[1,1]、[2,2]、[3,3]、[4,4]] 我想把这个列表重复三次。我属于[0,3],j=I-1,k=I-2 例如: slice 1: [3, 3], [4, 4] slice 2: [2, 2], [3, 3] slice 3: [1, 1], [2, 2] 我怎么做 使用,您可以创建如下输出: 代码: 测试代码: 如果你想从中得到口述: new_data = {'slice_{}'.format(i): d for i, d in
slice 1: [3, 3], [4, 4]
slice 2: [2, 2], [3, 3]
slice 3: [1, 1], [2, 2]
我怎么做 使用,您可以创建如下输出:
代码:
测试代码:
如果你想从中得到口述:
new_data = {'slice_{}'.format(i): d for i, d in
enumerate(zip(reversed(data[:-1]), reversed(data)), 1)}
print(new_data)
结果:
您可以尝试以下方法:
s = [[1, 1], [2, 2], [3, 3], [4,4]]
new_s = {"slice {}".format(len(s)-i-1):[s[i], s[i+1]] for i in range(len(s)-1)}
输出:
{'slice 1': [[3, 3], [4, 4]], 'slice 3': [[1, 1], [2, 2]], 'slice 2': [[2, 2], [3, 3]]}
您能否澄清如何确定哪些元素应显示在哪一行上?
j
和k
是关于什么的?欢迎来到SO。不幸的是,这不是一个讨论论坛或教程服务。请花点时间阅读该页面上的链接和其他链接。你应该花一些时间来练习这些例子。它将向您介绍Python提供的工具,您甚至可以开始想出解决问题的方法。您可以通过反转所有内容来摆脱其中一个反向调用:)new_data=list(反向(zip(data,data[:-1]))
@chepner,TypeError:'zip'对象是不可逆的
您需要一个额外的列表
包装器用于Python 3<代码>新建数据=列表(反向(列表(zip…))
。(不可否认,这让它变得不那么令人兴奋。)但你最终会建立一个额外的列表。隐马尔可夫模型。。这么多的可能性。感谢您的反馈。根据OP的需要,可能不需要外部列表,例如,x的,y的反向(列表(zip(数据,数据[:-1]))
。最佳答案取决于实际需要什么。有点恼人的是,reversed
不能与任意迭代器一起工作,尽管原则上我知道它不能工作的原因。
[([3, 3], [4, 4]), ([2, 2], [3, 3]), ([1, 1], [2, 2])]
{'slice_1': ([3, 3], [4, 4]), 'slice_2': ([2, 2], [3, 3]), 'slice_3': ([1, 1], [2, 2])}
s = [[1, 1], [2, 2], [3, 3], [4,4]]
new_s = {"slice {}".format(len(s)-i-1):[s[i], s[i+1]] for i in range(len(s)-1)}
{'slice 1': [[3, 3], [4, 4]], 'slice 3': [[1, 1], [2, 2]], 'slice 2': [[2, 2], [3, 3]]}