相关疑难解决方法(0)

如何遍历除列表的最后一项之外的所有项目?

我想循环检查每个项目的列表与其后面的项目.

有没有办法可以循环使用除了最后一项使用x中的所有项目?如果可以的话,我宁愿不使用索引.

注意

freespace回答了我的实际问题,这就是我接受答案的原因,但是SilentGhost回答了我应该问的问题.

为混乱道歉.

python

142
推荐指数
4
解决办法
15万
查看次数

在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万
查看次数

从列表L创建(L [i],L [i + 1])元组列表

假设我们有一个清单L = [1,2,3,4,5].是否有一种干净的方法来制作以下形式的元组列表:T = [(1,2),(2,3),(3,4),(4,5)]

如果有更好的替代方案,那就太好了

    T = []
    for i in range(len(L) - 1):
        T.append((L[i], L[i+1]))
Run Code Online (Sandbox Code Playgroud)

或者等同的理解.

python

3
推荐指数
1
解决办法
196
查看次数

拆分带有数字列表的字符串

我正在尝试按列表中给出的位置拆分字符串,并将这些部分添加到新列表中.我开始:

seq = 'ATCGATCGATCG'
seq_new = []
seq_cut = [2, 8 , 10]
Run Code Online (Sandbox Code Playgroud)

我想得到:

seq_new = ['AT', 'CGATCG', 'AT', 'CG'] 
Run Code Online (Sandbox Code Playgroud)

具有位置的列表的大小和值可变.我该如何处理这样的数据?

python split list

3
推荐指数
2
解决办法
93
查看次数

R 迭代列表中的连续对

假设我有以下向量:

v1 = c(1,2,3,4)

我需要以成对的方式迭代这个向量,比如(1,2), (2,3), (3,4). 对于python,这里有一个解决这个问题的方法:迭代列表中所有连续的项目对。在 R 中可以实现类似的解决方案吗?

r list

3
推荐指数
1
解决办法
81
查看次数

在迭代中获得一个元素和以下元素的优雅/高效方法

所以我有一个问题,我有一个iterable(字符串或列表在这里)喜欢string = "ABCDEFG",我想输出类似的东西

A-B
B-C
C-D
...
F-G
Run Code Online (Sandbox Code Playgroud)

所以我知道这有效(忘了处理indexError,但无论如何),但它很难看......

for i in range(len(myString)):
    element1 = myString[i]
    element2 = myString[i+1]
    print("theshit")
Run Code Online (Sandbox Code Playgroud)

有没有办法以更优雅/ pythonic的方式做到这一点?我认为itertools可以是一个解决方案,但我不知道它是如何工作的..

顺便说一句,我myString只需要这个循环所以也许生成器(不知道如何使用它,我还在学习)

谢谢 :)

python list python-itertools

2
推荐指数
1
解决办法
61
查看次数

迭代n个连续的列表元素(重叠)

itertools Python模块实现了迭代器的一些基本构建块.正如他们所说,"它们构成了迭代器代数".我期待,但我找不到使用该模块进行以下迭代的简洁方法.例如,给出有序实数列表

a = [1.0,1.5,2.0,2.5,3.0]
Run Code Online (Sandbox Code Playgroud)

...返回一个新的列表(或只是迭代)按一些n值分组,比方说2

b = [(1.0,1.5),(1.5,2.0),(2.0,2.5),(2.5,3.0)]
Run Code Online (Sandbox Code Playgroud)

我发现这样做的方式如下.首先将列表分为两部分,使用均衡和赔率索引:

even, odds = a[::2], a[1::2]
Run Code Online (Sandbox Code Playgroud)

然后构造新的列表:

b = [(even, odd) for even, odd in zip(evens, odds)]
b = sorted(b + [(odd, even) for even, odd in zip(evens[1:], odds)])
Run Code Online (Sandbox Code Playgroud)

从本质上讲,它类似于移动平均值.

有没有简洁的方法(有或没有itertools)?


PS:

应用

a列表想象为实验期间发生的一些事件的时间戳集:

timestamp       event
47.8            1a
60.5            1b
67.4            2a
74.5            2b
78.5            1a
82.2            1b
89.5            2a
95.3            2b
101.7           1a
110.2           1b
121.9           2a
127.1           2b

...
Run Code Online (Sandbox Code Playgroud)

此代码用于根据不同的时间窗口对这些事件进行分段.现在我对2连续事件之间的数据感兴趣; 'n> …

python iterator list

2
推荐指数
2
解决办法
1107
查看次数

标签 统计

python ×6

list ×4

iterator ×1

python-itertools ×1

r ×1

split ×1