相关疑难解决方法(0)

在Python中将列表迭代为对(当前,下一个)

我有时需要在Python中迭代一个列表,查看"current"元素和"next"元素.到目前为止,我已经完成了以下代码:

for current, next in zip(the_list, the_list[1:]):
    # Do something
Run Code Online (Sandbox Code Playgroud)

这有效并且符合我的预期,但是有更多惯用或有效的方法来做同样的事情吗?

python

121
推荐指数
7
解决办法
4万
查看次数

Python"Every Other Element"成语

我觉得我花了很多时间在Python中编写代码,但没有足够的时间创建Pythonic代码.最近我遇到了一个有趣的小问题,我认为可能有一个简单,惯用的解决方案.解释原文,我需要收集列表中的每个连续对.例如,给定列表[1,2,3,4,5,6],我想计算[(1,2),(3,4),(5,6)].

我想出了一个看起来像翻译Java的快速解决方案.重温这个问题,我能做的最好的就是

l = [1,2,3,4,5,6]
[(l[2*x],l[2*x+1]) for x in range(len(l)/2)]
Run Code Online (Sandbox Code Playgroud)

在长度不均匀的情况下,其具有抛弃最后一个数字的副作用.

是否有一种我不知道的惯用方法,或者这是我最好的方法?

python idioms

38
推荐指数
4
解决办法
3万
查看次数

在列表列表中获取对

我需要你的帮助,我希望你能指出我正确的方向,所以我得到了一个列表列表(这只是一个例子,列表列表可以有更多的元素),我试图得到成对的元素列表

mylist = [[2, 3, 4], [2, 3]]

#desired output
# newlist = [[2,3], [3,4], [2,3]]
Run Code Online (Sandbox Code Playgroud)

所以在这个问题中它有助于创建一个元组列表,其中每个元组都是一对,所以我使用这个问题的答案来创建这个代码

mylist = [[2, 3, 4], [2, 3]]

coordinates = []

for i in mylist:
    coordinates.append(list(map(list, zip(i, i[1:])))) #Instead of list of tuples, I use map to get a list of lists

print(coordinates)
#output [[[2, 3], [3, 4]], [[2, 3]]] #3D list  but not exactly what I want

a = [e for sl in coordinates for e in sl] #Use list comprehension …
Run Code Online (Sandbox Code Playgroud)

python list-comprehension list

0
推荐指数
1
解决办法
166
查看次数

标签 统计

python ×3

idioms ×1

list ×1

list-comprehension ×1