简体   繁体   English

更改网格中多个部分的值(字符串列表?)

[英]Changing the values in multiple parts of a grid (list of strings?)

I'm making a 10-by-10 grid of 0 s. 我正在建立一个10乘10的0 s网格。 I want to be able to change (for example) the top 5 rows to "ONE" through an if statement. 我希望能够通过if语句将(例如)前5行更改为“ ONE”。

What's the best way to go about doing it without targeting each individual 0 ? 在不针对每个0情况下进行此操作的最佳方法是什么?

I've tried doing something like grid[:5][:5] to target multiple 0 s, but that doesn't do anything. 我尝试做一些类似grid[:5][:5]来针对多个0 s,但这没有任何作用。

grid = [[0 for x in range(10)] for y in range(10)]

number = 1

if number is 1:
    grid[:5][:5] = "ONE"

for row in grid:
    print(" ".join(map(str, row)))

You can use two nested for loops: 您可以使用两个嵌套的for循环:

for row in range(5):
    for col in range(10):
        grid[row][col] = 'ONE'

As grid[:5][:5] returns a new list, changing the new list would not yield the results you want. 当grid [:5] [:5]返回一个新列表时,更改新列表不会产生所需的结果。

grid = [[0]*10 for x in range(10)] #pythonic way of making a list/list of list (grid)

number = 1
if number == 1:
    for x in xrange(5):
        for y in xrange(10):
            grid[x][y] = "ONE"

print(grid)

Output: 输出:

[['ONE', 'ONE', 'ONE', 'ONE', 'ONE', 'ONE', 'ONE', 'ONE', 'ONE', 'ONE'],
 ['ONE', 'ONE', 'ONE', 'ONE', 'ONE', 'ONE', 'ONE', 'ONE', 'ONE', 'ONE'],
 ['ONE', 'ONE', 'ONE', 'ONE', 'ONE', 'ONE', 'ONE', 'ONE', 'ONE', 'ONE'],
 ['ONE', 'ONE', 'ONE', 'ONE', 'ONE', 'ONE', 'ONE', 'ONE', 'ONE', 'ONE'],
 ['ONE', 'ONE', 'ONE', 'ONE', 'ONE', 'ONE', 'ONE', 'ONE', 'ONE', 'ONE'],
 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]]

You can do it, too, within list comprehension : 您也可以在list comprehension做到这一点:

grid = [[0 for x in range(10)] for y in range(10)]

number = 1
if number == 1:
    grid = [["ONE" if y <5 else 0 for x in range(10)] for y in range(10)]

for k in grid:
    print(" ".join(map(str,k)))

Output: 输出:

ONE ONE ONE ONE ONE ONE ONE ONE ONE ONE
ONE ONE ONE ONE ONE ONE ONE ONE ONE ONE
ONE ONE ONE ONE ONE ONE ONE ONE ONE ONE
ONE ONE ONE ONE ONE ONE ONE ONE ONE ONE
ONE ONE ONE ONE ONE ONE ONE ONE ONE ONE
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM