簡體   English   中英

在python中的二維列表中填充單元格

[英]Populating cells within a 2d list in python

作業中的確切措辭:我們傳入 2 個數字 A 和 B。您應該創建一個包含 A 行 B 列的列表。 然后,您應該像這樣填充每個單元格……'R0C0'、'R0C1'、'R0C2' 等。我能夠創建全 0 的列表,但無法修改為正確的輸出。

得到了這個,但不知道如何實施。

for row in rows:  # Each row
  for col in cols:  # The columns on the current row
      print('This is row: %s and col: %s' % (row,col)


    A= int(sys.argv[1])
    B= int(sys.argv[2])

    # Your code goes here
    a = [([0]*B) for row in range(0 , A)]

    print(a)

預期輸出:[['R0C0', 'R0C1', 'R0C2'], ['R1C0', 'R1C1', 'R1C2']] 你的程序輸出:[[0, 0, 0], [0, 0, 0]]]

您在結果中既沒有使用A也沒有使用B ,而是使用0 ,這就是為什么您得到[[0, 0, 0], [0, 0, 0], [0, 0, 0]] .

您可以通過使用字符串格式來獲取所需的行和列來解決該問題。

num_rows = int(sys.argv[1])
num_columns = int(sys.argv[2])

result = [["R{row}C{col}".format(row=row, col=col) for col in range(num_columns)] for row in range(num_rows)]

或者,更簡潔(在 Py3.6+ 中使用 f 字符串):

result = [[f"R{row}C{col}" for col in range(num_columns)] for row in range(num_rows)]

您也可以初始化您的列表,然后迭代並設置每個值,但我不確定在本示例中執行此操作會獲得什么。

import itertools

def make_2d_list(self, rows, columns):
    """Makes a 2D list with None for each value."""

    return [[None for _ in range(columns)] for _ in range(rows)]

base_list = make_2d_list(num_rows, num_columns)

for row, col in itertools.product(range(num_rows), range(num_columns))
    # itertools.product is a concise form of nested for loops.
    # These two expressions are equivalent:
    #
    # for a, b, c, d, e in itertools.product(as, bs, cs, ds, es):
    #     ...
    #
    # for a in as:
    #     for b in bs:
    #         for c in cs:
    #             for d in ds:
    #                 for e in es:
    #                     ...
    base_list[row][col] = f"R{row}C{col}"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM