用于In循环的Python后面的表达式

时间:2013-10-17 22:55:46

标签: python

在这个例子中:

sorted_data = [files.data[ind] for ind in sort_inds]

请有人请说明for循环背后的表达方式是如何相关的或者它是如何工作的,谢谢。

3 个答案:

答案 0 :(得分:4)

它被称为List Comprehension

换句话说

sorted_data = [files.data[ind] for ind in sort_inds]

相当于:

sorted_data = []
for ind in sort_inds:
    sorted_data.append(files.data[ind])

使用理解

可读性更高

答案 1 :(得分:2)

好的,这是一个简单的例子:

说我有一份整体清单:

nums = [1,2,3]

我这样做:

[i**2 for i in nums]

它会输出:

[1, 4, 9]

这相当于:     因为我在nums:         list.append(I ** 2)

因为它遍历列表并对列表中的每个项目进行了平方

另一个例子:

说我有一个像这样的字符串列表:

list1 = ['hey, jim','hey, pam', 'hey dwight']

我这样做:

[phrase.split(',') for phrase in list1]

这将输出此列表:

[['hey', ' jim'], ['hey', ' pam'], ['hey dwight']]

这也是等同的:

for phrase in list1:
    new_phrase = phrase.split(',')
    list.append(new_phrase)

它通过并列出了每个项目的列表,但它在每个项目上使用了分割

它基本上是一个压缩的循环,而不是使用append()它只是创建列表!它更具可读性,占用更少的行

了解详情here

答案 2 :(得分:0)

这意味着对于本案例中的每个项目ind存在于sort_inds中,将其作为参数传递给函数files.data [ind]。

将结果保存在列表中(sorted_data)