对 2D 列表使用 .strip()

2023-12-11

第一个问题

我想知道如何在二维列表中使用 .strip() 函数,以便在列表内每个列表的每个元素中,您可以删除字符串内无用的空格。

这是我在 shell 中的尝试:

>>> questions = [['1986 ',' Baby', 'Shaw ', ' Welcome'],['1976',' fJKC','cbv bv ',' byt']]
>>> [['1986 ',' Baby', 'Shaw ', ' Welcome'],['1976',' fJKC','cbv bv ',' byt']]

>>> for z in range(len(questions)):
        for t in range(len(questions[z])):
                questions[z].append(questions[z][t].strip())
>>> questions
>>> [['1986 ', ' Baby', 'Shaw ', ' Welcome', '1986', 'Baby', 'Shaw', 'Welcome'], ['1976', ' fJKC', 'cbv bv ', ' byt', '1976', 'fJKC', 'cbv bv', 'byt']]

然而,这不是我希望它返回的方式。我的预期结果是,编写代码后,问题等于:

>>> questions
>>> [['1986', 'Baby', 'Shaw', 'Welcome'], ['1976', 'fJKC', 'cbv bv', 'byt']]

  1. 您不需要使用索引来迭代列表。只是迭代。
  2. list.append不改变原地的项目;使用list[i] = ...更改项目。或者list[:] = ...更改所有项目。

这是使用简单迭代和列表切片分配的一个(list[:] = ...) 用列表理解替换就地项目:

questions = [['1986 ',' Baby', 'Shaw ', ' Welcome'], ['1976',' fJKC','cbv bv ',' byt']]

for q in questions:
    q[:] = [info.strip() for info in q]

    # Alternatives
    # q[:] = (info.strip() for info in q)  # generator expression
    # q[:] = map(str.strip, q)  # `map` with unbound method `str.strip`

# question => [['1986', 'Baby', 'Shaw', 'Welcome'], ['1976', 'fJKC', 'cbv bv', 'byt']]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

对 2D 列表使用 .strip() 的相关文章

随机推荐