2024-04-25 17:16:50 发布
网友
我有一个python列表
l= [[1105.46, 1105.75, 1105.75, 1105.46, 1051.46], [ 120.23, 120.23, 120.41, 20.41, 120.23]]
我怎样才能得到这个:
answer = [[1105.46,120.23], ....[1051.46,120.23]]
我是这样做的:
answer = [[x, y] for x, y in l] print answer
ValueError:要解包的值太多
你也可以尝试下面的方法。你知道吗
>>> l = [[1105.46, 1105.75, 1105.75, 1105.46, 1051.46], [ 120.23, 120.23, 120.41, 20.41, 120.23]] >>> >>> answer = [list(tup) for tup in zip(*l)] >>> >>> answer [[1105.46, 120.23], [1105.75, 120.23], [1105.75, 120.41], [1105.46, 20.41], [1051.46, 120.23]] >>>
这里有一个简单的方法:
>>> map(list, zip(*l)) [[1105.46, 120.23], [1105.75, 120.23], [1105.75, 120.41], [1105.46, 20.41], [1051.46, 120.23]]
如果不关心嵌套元素是列表还是元组,则更简单:
>>> zip(*l) [(1105.46, 120.23), (1105.75, 120.23), (1105.75, 120.41), (1105.46, 20.41), (1051.46, 120.23)]
使用标准python中的zip()函数:
zip()
l= [[1105.46, 1105.75, 1105.75, 1105.46, 1051.46], [ 120.23, 120.23, 120.41, 20.41, 120.23]] new_list = [] for x, y in zip(l[0], l[1]): new_list.append([x, y]) print(new_list)
输出:
[[1105.46, 120.23], [1105.75, 120.23], [1105.75, 120.41], [1105.46, 20.41], [1051.46, 120.23]]
带列表理解的单行版本:
print([[x, y] for x, y in zip(l[0], l[1])])
你也可以尝试下面的方法。你知道吗
这里有一个简单的方法:
如果不关心嵌套元素是列表还是元组,则更简单:
使用标准python中的
zip()
函数:输出:
带列表理解的单行版本:
相关问题 更多 >
编程相关推荐