扫雷/python中*解包作用
2023-12-14 22:43:02
题目描述
在一个n行m列的方格图上有一些位置有地雷,另外一些位置为空。
请为每个空位置标一个整数,表示周围八个相邻的方格中有多少个地雷。
输入描述
输入的第一行包含两个整数n,m。
第2行到第n+1行每行包含m个整数,相邻整数之间用-个空格分隔。如果对应的整数为 0,表示这一格没有地雷。如果对应的整数为1,表示这一格有地雷
其中,1<n,m<100分钟后还是在当天
输出描述
输出n行,每行m个整数,相邻整数之间用空格分隔
对于没有地雷的方格,输出这格周围的地雷数量。对于有地雷的方格,输出9。
import os
import sys
# 请在此输入您的代码
n,m=map(int,input().split())
s=[list(map(int,input().split())) for i in range(n)] #输入的数据
a=[[0]*m for i in range(n)] #要输出的地图
for i in range(n):
for j in range(m):
if s[i][j] ==1: #有地雷
a[i][j]=9
continue
cnt=0
if s[i][j] ==0:#没有地雷
for i1 in range(i-1,i+2):
for j1 in range(j-1,j+2):
if 0<=i1<n and 0<=j1<m:
if s[i1][j1]==1:
cnt+=1
a[i][j]=cnt
for i in a:
print(*i)
输出:
3 4
0 1 0 0
1 0 1 0
0 0 1 0
2 9 2 1
9 4 9 2
1 3 9 2
在Python中,*
是一种解包操作符(asterisk unpacking operator)。在print(*i)
中,它用于解包列表i
的元素。
当我们使用print
函数打印一个列表时,通常会打印出列表的表示形式,其中元素之间用逗号分隔,并且列表被方括号包围。但是,如果我们希望打印出列表的元素本身,而不是列表的表示形式,就可以使用*
解包操作符。
通过在print
函数中使用*i
,*
会解包列表i
的元素,将它们作为独立的参数传递给print
函数。这样,print
函数会以空格作为分隔符打印出列表的元素。
a = [1, 2, 3]
print(*a)
输出将是:
1 2 3
而不是:
[1, 2, 3]
文章来源:https://blog.csdn.net/weixin_72050316/article/details/135004862
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!