python新手,列出理解问题

2024-09-30 18:19:26 发布

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

我想我理解其中一些。它适用于10个列表中0和1的列表。以下是列表值:

tenSpikes = [00101],[01100],[10010],[01010],[11100],[00011],[10101],[11111],[11110],[10101]

for trial in range(len(tenSpikeTrains)):
    spikeTimes = [i for i,x in enumerate (tenSpikeTrains[trial]) if x==1]

问题:

  • for trial in range(len(tenspikes))是对列表进行十次迭代,每次迭代都以0,1,2..等形式保存在{}中,对吗
  • 有人能陪我走过吗
  • 为什么有两个i?在这个for循环中,i是什么意思,它仍然保持索引吗?我看到它试图拉取x==1的值,并以某种方式保持索引。哪些变量包含这些值?也许有人能给我解释一下

Tags: in列表forlenif方式range形式
1条回答
网友
1楼 · 发布于 2024-09-30 18:19:26

列表理解是一种过滤或修改iterable以创建不同iterable的方法。这些可以很容易地转换为人们更熟悉的for循环。 你可以重写 spikeTimes = [i for i,x in enumerate(tenSpikeTrains[trial]) if x==1] 作为

spikeTimes = []
for i, x in enumerate(tenSpikeTrains[trial]):
    if x == 1:
        spikeTimes.append(i)

理解的第一部分是i。这是添加到列表中的值。第二部分是i, x这是您迭代使用的两个变量。第三是enumerate(tenSpikeTrains[trial])。这就是您正在迭代的内容。最后,if x == 1仅在结果为true时将第一个值添加到列表中。最后一部分是可选的,如果您不想对其进行筛选,可以将其删除

相关问题 更多 >