C 嵌套在Python中的循环表示
C++ nested for loops representation in Python
我已经在C 和Java中编码了一段时间。我最近也开始在Python中进行编码。但是,我被困在Python的嵌套循环的情况下。我在C 中写下了以下代码。Python中它的等效代码是什么?
for(int i = 0; i<a.size();i++){
for(int j = i; j<a.size();j++)
{
if a[i] != a[j]
/*some code */
}
}
我试图使用以下枚举,但失败:
for i, val in enumerate(lst):
for j=i,val2 in enumerate(lst):
if val != val2
#some code
那么如何表示Python中的C 嵌套环?
import itertools
for val1, val2 in itertools.combinations(lst, 2):
if val1 != val2:
combinations
将在所有从列表中选择两个不同元素的情况下循环,这是您嵌套的循环所做的事情。请注意,您的第二个嵌套循环是在j=i
上初始化的,但是第一种情况总是无法处理,因为它永远不会通过条件。
如果您真的需要这些索引,通常您不应该这样做:
for (i, val1), (j, val2) in itertools.combinations(enumerate(lst), 2):
if val1 != val2:
如其他地方提到的,枚举会做一件事(提供索引)。它不会在您的列表中截断或跳过。如果您想使用枚举,一个选项是通过列表切片而不是完整列表,并使用start=
关键字参数正确启动索引编号:
for i, val in enumerate(lst):
for j, val2 in enumerate(lst[i:], start=i):
if val != val2:
#some code
enumerate
函数没有启动索引,但是range
在这种意义上会。应该注意的是,当enumerate(sequence, start=0)
具有start
参数时,它仅指定返回索引的开始,而不是访问列表的第一个索引。
因此您可以这样做:
n = len(lst)
for i in range(n):
val = lst[i]
for j in range(i, n):
val2 = lst[j]
if val != val2:
#some code
相关文章:
- 如何循环打印顶点结构
- 嵌套在循环中的两个循环的 big-O 表示法
- T(n) 表示嵌套循环
- C 表示循环语法理解
- 双精度表示循环加值
- C 嵌套在Python中的循环表示
- 用于循环,if表示Ardiuno驱动湿度控制的说明
- 如何在没有循环的二进制数字表示中只计算1位
- 如何在指针表示法和数组表示法中循环遍历二维数组
- 使用指针表示法在数组中循环
- 使用大括号(即{})表示单行if或循环的目的是什么?
- C 或 C++ :表示循环变量
- 如何循环浮点数的精确表示
- 2表示循环为1
- C++表示循环菱形仅为负数
- 如何在图的边列表表示中检测循环
- 大写O表示嵌套常量for循环
- for循环需要运行LLONG_MAX次数,但是计数器变量也需要表示有符号的数字.你用什么类型的柜台?
- 最小堆通过二叉树的数组表示;MoveDown函数无限循环
- 如何找到循环下FFT乘法的Big-O表示法