Python 数组学习

luogu P2141 [NOIP2014 普及组] 珠心算测验

em,无话可说,蛮简单的,就是 python 语法的学习。

split 要多学学。

a=[0]*105
n=int(input())
ans=int(0)
b=[0]*105
a=[int(num) for num in input().split()]
for i in range(0,n):
    for j in range(0,n):
        for k in range(0,n):
            if i==j or j==k or i==k or a[k]==a[j]:
                continue
            if a[i]==a[j]+a[k] and b[i]==0:
                ans+=1
                b[i]=1
print(ans)

二位数组的定义和运用

二维数组可以用最简单的定义,但不推荐,因为每改变一行,其他所有行都会改变。

比如说这个问题:Hello!

a=[[x]*n]*m
# n,m为大小
# x 为字符或数字

其实用这个比较好,方便实用。

a=[[x] * n for i in range(m)]

运用:

请输入这个地图,创造一个 mp 数组,若地图里是 '0',mp 数组相应值为 0,若地图里是 '*',mp 数组相应值为 1。

input:

4 5
00000
00*00
0*0*0
00*00

output:

0 0 0 0 0
0 0 1 0 0
0 1 0 1 0
0 0 1 0 0

Warning:If u use the first one that I gave u,ur output will like this:

0 0 1 0 0 
0 0 1 0 0 
0 0 1 0 0 
0 0 1 0 0 

code:

n,m=map(int,input().split())
f=[[0] * 505 for i in range(505)]
for i in range(1,n+1):
    c=input()
    for j in range(0,m):
        if c[j]=='0':
            f[i][j+1]=0
        else:
            f[i][j+1]=1
for i in range(1,n+1):
    for j in range(1,m+1):
        print(f[i][j],end=" ")
    print()

注:这是一道 dfs 题的一部分,题目是 luogu P1506,简单题。

posted @ 2024-12-18 15:22  raiterlin  阅读(22)  评论(0)    收藏  举报