在这个例子中:
sorted_data = [files.data[ind] for ind in sort_inds]
请有人请说明for循环背后的表达方式是如何相关的或者它是如何工作的,谢谢。
答案 0 :(得分:4)
换句话说
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)