用于循环理解的高级python
我曾经从stackoverflow复制了一行代码:用于循环理解的高级python,python,Python,我曾经从stackoverflow复制了一行代码: clusters = [x for n, x in enumerate(vecarray) if x not in vecarray[:n]] 我知道它的作用,但不知道如何。它为我提供了数组“vecarray”的所有唯一行,并将它们保存在“clusters”中。我对正常for循环有基本的了解,但是这个结构看起来不同 如果我还想保存索引,那么我该如何编辑这行代码?找到的行基本上是在循环找到下一个唯一编号的哪一行 有人能解释一下吗?枚举函数已经将
clusters = [x for n, x in enumerate(vecarray) if x not in vecarray[:n]]
我知道它的作用,但不知道如何。它为我提供了数组“vecarray”的所有唯一行,并将它们保存在“clusters”中。我对正常for循环有基本的了解,但是这个结构看起来不同
如果我还想保存索引,那么我该如何编辑这行代码?找到的行基本上是在循环找到下一个唯一编号的哪一行
有人能解释一下吗?枚举函数已经将在其中找到值的行返回为n
如果您只是将代码更改为:
clusters = [(n, x) for n, x in enumerate(vecarray) if x not in vecarray[:n]]
然后应该有一个元组列表,而不是值列表
然后,您可以执行以下操作:
for n,x in clusters:
print(x," found at row ",n)
您的代码行是一个列表。您可以将其重新编写为循环的标准:
clusters=[]
for n,x in enumerate(vecarray):
if x not in vecarray[:n]:
clusters.append((n,x))
枚举函数已将在其中找到值的行返回为n
如果您只是将代码更改为:
clusters = [(n, x) for n, x in enumerate(vecarray) if x not in vecarray[:n]]
然后应该有一个元组列表,而不是值列表
然后,您可以执行以下操作:
for n,x in clusters:
print(x," found at row ",n)
您的代码行是一个列表。您可以将其重新编写为循环的标准:
clusters=[]
for n,x in enumerate(vecarray):
if x not in vecarray[:n]:
clusters.append((n,x))
这种循环格式在Python中被称为,是在Python中创建列表的另一种紧凑的方法 关于你的问题,你可以用多种方式保存索引,这取决于你想要什么 方法1: 例如: 方法2: 将列表理解替换为dict理解
clusters = { str(n): x for n, x in enumerate(vecarray) if x not in vecarray[:n]}
例如:
这种循环格式在Python中被称为,是在Python中创建列表的另一种紧凑的方法 关于你的问题,你可以用多种方式保存索引,这取决于你想要什么 方法1: 例如: 方法2: 将列表理解替换为dict理解
clusters = { str(n): x for n, x in enumerate(vecarray) if x not in vecarray[:n]}
例如:
请使用一些示例数据、群集结果和希望看到的更改更新问题。请使用一些示例数据、群集结果和希望看到的更改更新问题。