为什么我的单子上一个也没有?

2024-10-03 13:23:27 发布

您现在位置:Python中文网/ 问答频道 /正文

请考虑以下列表:

test = ["stas", "doug", "saman", "movie"]
for q in range(len(test)):
    PreGroup = None
    if (q > 0):
        PreGroup = test[q-1]
    print PreGroup

我怎么能一个也没有呢?作为第一个输出? 我需要在那里设置q-1,或者至少我认为,因为我需要PreGroup在当前索引之前是一个索引。你知道吗

我的PreGroup不能没有,因为我稍后会在代码中传递它,如果它没有,我会得到一个错误。你知道吗

谢谢。你知道吗


Tags: 代码intestnone列表forlenif
3条回答

如果q为0,则不希望将PreGroup(设置为None以外的值)。这很好,但是您可以打印PreGroup的值,不管它是否已设置。如果将print也放在if内,则只有PreGroup设置为test[q-1]时,它才会打印。然后还可以删除PreGroup = None行,因为PreGroup不需要存在于if之外。你知道吗

不过,解决问题的更好方法是让循环从1开始,而不是从0开始。这样,您甚至不必检查q是否为0。您可以使用range(1, len(test))来实现这一点。你知道吗

range0开始,因此第一次通过测试if (q > 0)失败,PreGroup停留在None。你知道吗

顺便说一下,在if测试周围不需要括号。你知道吗

你没有很清楚地表达你想要的是什么,但是我想你说的是,在循环的每次迭代中,你都想要一个有效的当前组test[q]和一个有效的前一组test[q-1]。在这种情况下,可以使用range(1, len(test))使q1开始,而不是从0开始。你知道吗

或者,您可以在不使用任何索引的情况下执行此操作:

for (pre_group, group) in zip(test, test[1:]):
    print pre_group, group

相关问题 更多 >