List Comprehension Hackerrank - 你能告诉我这个衬垫是否可以使用吗?
List Comprehension Hackerrank - can you tell me if this one liner is permittable to use?
我目前正在尝试解决这个挑战 - List Comprehensions -
并在 python3:
中提出了这个解决方案
if __name__ == '__main__':
x = int(input())
y = int(input())
z = int(input())
n = int(input())
list = []
for a in range(0, x+1):
for b in range(0, y+1):
for c in range(0, z+1):
if a + b + c != n:
list.append([a, b, c])
print(list)
但困扰我的是我在 discussion:
中找到的一个衬里解决方案
x, y, z, n = (int(input()) for _ in range(4))
print ([[a,b,c] for a in range(x+1) for b in range(y+1) for c in range(z+1) if a + b + c != n ])
我是一个完全的初学者,不知道这个衬垫是否可以使用,如果可以的话,你能解释一下这个衬垫是如何工作的吗?你能分享我可以开始学习如何使用这样一个班轮代码的任何来源吗?
list
是python中的内置数据类型,所以你不应该使用list
作为标识符(变量名)。
而你的代码本身就是一行代码的解释。
诀窍是,您从要执行的 expression
开始,然后编写最外层的 for 循环,转到内部循环,最后添加要检查的条件.另外,请记住使用正确的数据结构符号来拥抱整个事物。
例如:如果我想列出所有能被 3 整除的 100 以内的偶数,我会这样做:
numbers = [i for i in range(0, 100, 2) if i % 3 == 0]
print(numbers)
输出:
[0, 6, 12, 18, 24, 30, 36, 42, 48, 54, 60, 66, 72, 78, 84, 90, 96]
我目前正在尝试解决这个挑战 - List Comprehensions - 并在 python3:
中提出了这个解决方案if __name__ == '__main__':
x = int(input())
y = int(input())
z = int(input())
n = int(input())
list = []
for a in range(0, x+1):
for b in range(0, y+1):
for c in range(0, z+1):
if a + b + c != n:
list.append([a, b, c])
print(list)
但困扰我的是我在 discussion:
中找到的一个衬里解决方案x, y, z, n = (int(input()) for _ in range(4))
print ([[a,b,c] for a in range(x+1) for b in range(y+1) for c in range(z+1) if a + b + c != n ])
我是一个完全的初学者,不知道这个衬垫是否可以使用,如果可以的话,你能解释一下这个衬垫是如何工作的吗?你能分享我可以开始学习如何使用这样一个班轮代码的任何来源吗?
list
是python中的内置数据类型,所以你不应该使用list
作为标识符(变量名)。
而你的代码本身就是一行代码的解释。
诀窍是,您从要执行的 expression
开始,然后编写最外层的 for 循环,转到内部循环,最后添加要检查的条件.另外,请记住使用正确的数据结构符号来拥抱整个事物。
例如:如果我想列出所有能被 3 整除的 100 以内的偶数,我会这样做:
numbers = [i for i in range(0, 100, 2) if i % 3 == 0]
print(numbers)
输出:
[0, 6, 12, 18, 24, 30, 36, 42, 48, 54, 60, 66, 72, 78, 84, 90, 96]