改变输出格式
alter the format of output
我有以下代码:
a=[1,2,3,4]
b=[5,6,7,8]
c=[9,10,11,12]
d=[a,b,c]
print(d)
result=[]
for i in d:
for j in i:
f=j**2
result.append(f)
print(result)
这是我得到的输出:
[1, 4, 9, 16]
[1, 4, 9, 16, 25, 36, 49, 64]
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100, 121, 144]
这是我想要的输出:
[1, 4, 9, 16]
[25, 36, 49, 64]
[81, 100, 121, 144]
我只想使用这个嵌套列表来获得所需的输出。
你必须这样做:
a=[1,2,3,4]
b=[5,6,7,8]
c=[9,10,11,12]
d=[a,b,c]
print(d)
#result=[]
for i in d:
result = []
for j in i:
f=j**2
result.append(f)
print(result)
您的 result
变量必须在循环内才能更新整个变量
每次迭代新的子列表时都需要清空结果。这样它就不会继续添加到结果中。
a=[1,2,3,4]
b=[5,6,7,8]
c=[9,10,11,12]
d=[a,b,c]
for i in d:
result=[]
for j in i:
result.append(j**2)
print(result)
另一种选择是将 result
分配给主 for 循环之外的空列表,但使用 .clear()
.
a=[1,2,3,4]
b=[5,6,7,8]
c=[9,10,11,12]
d=[a,b,c]
result = []
for i in d:
result.clear()
for j in i:
result.append(j**2)
print(result)
您还可以使用列表理解来简化您的代码。
a=[1,2,3,4]
b=[5,6,7,8]
c=[9,10,11,12]
result = [[num**2 for num in l] for l in [a,b,c]]
您可以使用 list comprehensions :
a=[1,2,3,4]
b=[5,6,7,8]
c=[9,10,11,12]
d=[a,b,c]
print(d)
def fsquare(a):
return a**2
def print_line_by_line(l):
[print(e) for e in l]
result1=[]
for l in d:
#use list comprehensions to apply a function on all items of a list
f=[fsquare(element) for element in l]
result1.append(f)
print_line_by_line(result1)
result2=[]
#use list nested list comprehensions to apply a function on all items within nested lists
result2=[[fsquare(element) for element in l] for l in d]
print_line_by_line(result2)
print(result2)
您也可以试试:
for item in (list(map(lambda x:x**2,i)) for i in d):
print(item)
我有以下代码:
a=[1,2,3,4]
b=[5,6,7,8]
c=[9,10,11,12]
d=[a,b,c]
print(d)
result=[]
for i in d:
for j in i:
f=j**2
result.append(f)
print(result)
这是我得到的输出:
[1, 4, 9, 16]
[1, 4, 9, 16, 25, 36, 49, 64]
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100, 121, 144]
这是我想要的输出:
[1, 4, 9, 16]
[25, 36, 49, 64]
[81, 100, 121, 144]
我只想使用这个嵌套列表来获得所需的输出。
你必须这样做:
a=[1,2,3,4]
b=[5,6,7,8]
c=[9,10,11,12]
d=[a,b,c]
print(d)
#result=[]
for i in d:
result = []
for j in i:
f=j**2
result.append(f)
print(result)
您的 result
变量必须在循环内才能更新整个变量
每次迭代新的子列表时都需要清空结果。这样它就不会继续添加到结果中。
a=[1,2,3,4]
b=[5,6,7,8]
c=[9,10,11,12]
d=[a,b,c]
for i in d:
result=[]
for j in i:
result.append(j**2)
print(result)
另一种选择是将 result
分配给主 for 循环之外的空列表,但使用 .clear()
.
a=[1,2,3,4]
b=[5,6,7,8]
c=[9,10,11,12]
d=[a,b,c]
result = []
for i in d:
result.clear()
for j in i:
result.append(j**2)
print(result)
您还可以使用列表理解来简化您的代码。
a=[1,2,3,4]
b=[5,6,7,8]
c=[9,10,11,12]
result = [[num**2 for num in l] for l in [a,b,c]]
您可以使用 list comprehensions :
a=[1,2,3,4]
b=[5,6,7,8]
c=[9,10,11,12]
d=[a,b,c]
print(d)
def fsquare(a):
return a**2
def print_line_by_line(l):
[print(e) for e in l]
result1=[]
for l in d:
#use list comprehensions to apply a function on all items of a list
f=[fsquare(element) for element in l]
result1.append(f)
print_line_by_line(result1)
result2=[]
#use list nested list comprehensions to apply a function on all items within nested lists
result2=[[fsquare(element) for element in l] for l in d]
print_line_by_line(result2)
print(result2)
您也可以试试:
for item in (list(map(lambda x:x**2,i)) for i in d):
print(item)