python 嵌套列表理解
python nested list comprehensions
我正在学习 python 并学习他们的教程。我理解列表理解和嵌套列表理解。不过,使用以下代码,我试图了解事件的顺序。
>>> matrix = [
...[1, 2, 3, 4],
...[5, 6, 7, 8],
...[9, 10, 11, 12],
... ]
>>> [[row[i] for row in matrix] for i in range(4)]
[[1, 5, 9], [2, 6, 10], [3, 7, 11], [4,8,12]]
根据嵌套列表理解,第一个"i"和第二个"i"是同一个变量吗?它们是否同时增加?我想我不明白生成的大列表是如何从第一个子列表 [1, 5, 9] 到第二个子列表 [2, 6, 10]
[[row[i] for row in matrix] for i in range(4)]
相当于
my_list = []
for i in range(4):
my_list_2 = []
for row in matrix:
my_list_2.append(row[i])
my_list.append(my_list_2)
is the first "i" and the second "i" the same variable and do they both increase at the same time?
当然是。如果不相同 i
,代码将抛出错误,因为不会定义两者之一。
您可能对这个问题感兴趣:Understanding nested list comprehension
我做了一个函数以便自动执行(抱歉这个例子,我是从别人那里拿来的):
比方说,你有这个例子:
# 2-D List
matrix = [[1, 2, 3], [4, 5], [6, 7, 8, 9]]
flatten_matrix = []
for sublist in matrix:
for val in sublist:
flatten_matrix.append(val)
这是我的职能:
(首先,将示例转换为将发送给函数的字符串)
x = "for sublist in matrix:for val in sublist:flatten_matrix.append(val)"
然后函数:
def ComprenhensionizeList(nested_for_loop_str):
splitted_fors = nested_for_loop_str.split(':')
lowest_val = splitted_fors[1].split(' ')[1]
comprehensionizer = '[ '+ lowest_val+' '+splitted_fors[0]+' '+splitted_fors[1]+' ]'
print(comprehensionizer)
和输出:
[ val for sublist in matrix for val in sublist ]
我正在学习 python 并学习他们的教程。我理解列表理解和嵌套列表理解。不过,使用以下代码,我试图了解事件的顺序。
>>> matrix = [
...[1, 2, 3, 4],
...[5, 6, 7, 8],
...[9, 10, 11, 12],
... ]
>>> [[row[i] for row in matrix] for i in range(4)]
[[1, 5, 9], [2, 6, 10], [3, 7, 11], [4,8,12]]
根据嵌套列表理解,第一个"i"和第二个"i"是同一个变量吗?它们是否同时增加?我想我不明白生成的大列表是如何从第一个子列表 [1, 5, 9] 到第二个子列表 [2, 6, 10]
[[row[i] for row in matrix] for i in range(4)]
相当于
my_list = []
for i in range(4):
my_list_2 = []
for row in matrix:
my_list_2.append(row[i])
my_list.append(my_list_2)
is the first "i" and the second "i" the same variable and do they both increase at the same time?
当然是。如果不相同 i
,代码将抛出错误,因为不会定义两者之一。
您可能对这个问题感兴趣:Understanding nested list comprehension
我做了一个函数以便自动执行(抱歉这个例子,我是从别人那里拿来的):
比方说,你有这个例子:
# 2-D List
matrix = [[1, 2, 3], [4, 5], [6, 7, 8, 9]]
flatten_matrix = []
for sublist in matrix:
for val in sublist:
flatten_matrix.append(val)
这是我的职能: (首先,将示例转换为将发送给函数的字符串)
x = "for sublist in matrix:for val in sublist:flatten_matrix.append(val)"
然后函数:
def ComprenhensionizeList(nested_for_loop_str):
splitted_fors = nested_for_loop_str.split(':')
lowest_val = splitted_fors[1].split(' ')[1]
comprehensionizer = '[ '+ lowest_val+' '+splitted_fors[0]+' '+splitted_fors[1]+' ]'
print(comprehensionizer)
和输出:
[ val for sublist in matrix for val in sublist ]