我试图通过比较元组第一项和指定的int()来打印元组列表,但是由于某种神秘的原因,第二项中带0的元组消失了
代码:
n_vertical = 3
n_horizontal = 3
for x in range(0,n_vertical):
for y in range(0,n_horizontal):
area.append((x,y,0))
print(area)
print('''
''')
def representacao_do_mapa(modo):
if modo == 1:
n=0
l_c = []
for x in area:
if x[0] == n:
l_c.append(x)
else:
print(l_c)
l_c = []
n+=1
representacao_do_mapa(1)
文本输出:
[(0, 0, 0), (0, 1, 0), (0, 2, 0)]
[(1, 1, 0), (1, 2, 0)]
问题
创建新列表时,您正在丢弃元组
x
:解决方案
除此之外-您的最后一个列表不会被打印,因为最后的
l_c
永远不会进入代码的打印部分-您必须将其添加到for循环区域之外。你知道吗输出(对于
n_vertical = 3
和n_horizontal = 3
:优化:
您可以使用列表理解和列表分解来缩短代码:
或者可以直接从
area
打印:使用生成器表达式将
area
切片为n_horizontal
个片段。你知道吗有关生成器/列表表达式的详细信息:Generator Expressions vs. List Comprehension
关于组块列表的更多信息:How do you split a list into evenly sized chunks?
更多关于列表切片:Understanding slice notation
有关打印的详细信息:https://docs.python.org/3/library/functions.html#print
相关问题 更多 >
编程相关推荐