Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
简单的python循环,读取新值后生成新行_Python_Loops_For Loop_While Loop_Jupyter Notebook - Fatal编程技术网

简单的python循环,读取新值后生成新行

简单的python循环,读取新值后生成新行,python,loops,for-loop,while-loop,jupyter-notebook,Python,Loops,For Loop,While Loop,Jupyter Notebook,我是python新手。我试图在排序列表上应用循环。其思想是,每当循环读取一个与前一个不同的新值时,它都会在它之前生成一行新行。我使用的编辑器是jupyter notebook 我试过的是 d=[1,1,1,2,2,3,4,5,5,5] for i in d: if i == d[i]: print(i) elif i != d[i]: print(i) print('\n') 预期的输出应该是这样的 1 1 1 *new line* 2 2 *new li

我是python新手。我试图在排序列表上应用循环。其思想是,每当循环读取一个与前一个不同的新值时,它都会在它之前生成一行新行。我使用的编辑器是jupyter notebook 我试过的是

d=[1,1,1,2,2,3,4,5,5,5]
for i in d:
  if i == d[i]:
     print(i)
  elif i != d[i]:
     print(i)
     print('\n')
预期的输出应该是这样的

1
1
1
*new line*
2
2
*new line*
3
*new line*
4
*new line*
5
5
5
但不幸的是,这段代码没有起到作用。感谢您的帮助,我非常感谢。

初始化最后一个变量以跟踪并迭代列表,仅当元素与最后一个不同时才打印换行符

last=d[0] 对于d中的元素: 如果元素=最后: 打印“\n” 最后一个=元素 打印元素 输出

1. 1. 1. 2. 2. 3. 4. 5. 5. 5.
您只需比较排序列表中的元素即可,如下所示:

d=[1,1,1,2,2,3,4,5,5,5]
for i in range(len(d)-1):
   if d[i] == d[i+1]:
     print(d[i])
   else:
     print(d[i])
     print('\n')
print(d[i])
输出:

更别说了;:


在您的代码中,您使用i来迭代数组d,但随后使用i来访问数组d[i]的元素,因此在前三次迭代中i==d[i]将为真,之后它将为假,例如i=2,d[2]=1,因此i==d[i]==false。此外,不需要elif条款,因为您只担心一个案例。使用一个变量跟踪数组中的前一个元素,这样就可以了

d=[1,1,1,2,2,3,4,5,5,5]
temp = d[0]
for i in d:
  if temp != i:
     print('\n')
  print(i)
  temp = i

编辑:很抱歉,代码读错了,现在解释应该更好了

如果当前数字不等于上一个数字,请在打印项目之前打印新行

d=[1,1,1,2,2,3,4,5,5,5]

for i in range(len(d)):
  if i > 0 and d[i] != d [i - 1]:
      print('\n')
  print(d[i])

这不会打印数组中的最后一个值。@tdurnford谢谢您的提示。我添加了另一行来打印最后一个元素,这是一个解决方案。我建议查看迭代的范围,并调整if语句中的逻辑。
d=[1,1,1,2,2,3,4,5,5,5]
temp = d[0]
for i in d:
  if temp != i:
     print('\n')
  print(i)
  temp = i
d=[1,1,1,2,2,3,4,5,5,5]

for i in range(len(d)):
  if i > 0 and d[i] != d [i - 1]:
      print('\n')
  print(d[i])