繁体   English   中英

如何操作 python 中 3d 列表中的字符串项? (没有numpy)

[英]How to manipulate string items in a 3d list in python? (without numpy)

我有一个 3d 列表长 6 项,宽 6 项,这是一个字符串列表的列表。

lst = [   [['A'],['A'],['B'],['B'],['A'],['A']],
          [['B'],['B'],['A'],['A'],['B'],['B']],
          [['A'],['A'],['B'],['B'],['A'],['A']],
          [['B'],['B'],['A'],['A'],['B'],['B']],
          [['A'],['A'],['B'],['B'],['A'],['A']],
          [['B'],['B'],['A'],['A'],['B'],['B']],
  ]

我想将字符串移动到列表中的其他位置,但我知道我没有使用正确的代码:

lst.insert([1][0][0], 'A')

给我一个TypeError: 'int' object is not subscriptable

我知道如何通过这样做来添加项目:

lst2 = lst[0][0]

lst2.append('A')

(将另一个“A”字符串添加到第一项)

我想在最低列表上执行各种操作,例如:

  • 在该列表中添加/删除字符串,
  • 检查该列表中有多少字符串项
  • 将“A”或“B”字符串移动到不同的位置,以便它们具有多个字符串。
  • 检查列表中的第一个字符串是什么

我对编程很陌生,我刚刚开始了解如何使用 2d 列表。

我如何在没有任何额外模块或库的情况下完成此操作?

首先,让我澄清这一行:

lst.insert([1][0][0], 'A')

insert 方法需要一个int参数作为索引。 如果要在多维列表中插入元素,则应按以下方式完成:

lst[1][0].insert(0, 'A')

毕竟,它是一个列表(列表)列表。 仅当您查看内部索引(由 2 个坐标定义)时,您才会得到一个简单的列表(在这种情况下为字符串)。 然后,您可以通过调用insert()方法将字符串元素插入此简单列表。

检查该列表中有多少字符串项

count = 0
for d2 in lst: #d2 is a 2d list (an element of a 3d list)
    for d1 in d2: # d1 - 1 dimensional
        count += len(d1)

在这里,我使用嵌套循环遍历了每个最底层(简单)列表,计算每个列表中有多少元素并将它们相加。

将“A”或“B”字符串移动到不同的位置,以便它们具有多个字符串。

假设我想将元素从[3][2][0]移动到[1][2][1] 我会将它插入新的 position 中,然后从旧的中删除。

element = lst[3][2][0]         # the task can be accomplished without using another variable, but this is for better understanding
lst[1][2].insert(1, element)   # inserting
lst[3][2].pop(0)               # deleting

该元素甚至可以像[1][2]一样移动到 position 中。 所以会有一个字符串和其他“子列表”

检查列表中的第一个字符串是什么

你的意思是lst[0][0][0]

暂无
暂无

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

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