【问题标题】:How do you find the length of a list inside a list? (Python3) [closed]如何在列表中找到列表的长度? (Python3)[关闭]
【发布时间】:2016-09-19 23:40:17
【问题描述】:

目前,我只是对此进行测试,并在我理解后将其添加到我的程序中。我只是想知道如何在列表中查找列表的长度。

我试过了:

l = [["1","2","3"],["1","2","3","4"],["1","2","3","4","5"]]
[print(len(x)) for x in l[0]]

但它只打印 1 三次。我只需要它来打印(或返回)l 中每个列表的长度。

【问题讨论】:

  • 仅将 l[0] 更改为 l 它正在我的系统上运行..

标签: list python-3.x nested-lists


【解决方案1】:

你有一个错字:你写了l[0] l 就足够了。

for x in l:
    print(len(x))

请注意,在列表推导中产生副作用是不好的做法——列表推导是创建值,而不是更改全局状态。您应该使用 for 循环。

【讨论】:

  • OP 的列表 comp 中有哪些副作用?它根本不会改变全局状态——它只是一种更简洁、更 Pythonic 的方式来创建 for 循环。
  • print 是一个副作用。使用列表推导来执行副作用然后丢弃值当然不是 Pythonic。请参阅this question
  • @MattDMo 它的函数并不由它的立即返回(总是null)来表示,所以它所做的任何事情都必须影响一个全局状态(在这种情况下是输出流)。
  • 我仍然不相信。这不像我们在这里用 Lisp 或 F# 编程,它是 Python。此外,我们无论如何都会打电话给print(),所以为什么不以更简洁的方式来做呢?哦,顺便说一句@Carcigenicate,技术上应该是None,而不是null :)
  • @MattDMo 更好的最佳实践。如果它们都被优化为相同的代码,我不会感到惊讶,因为从未使用过结果。理解显示了映射的意图。 for 循环用于对列表执行效果。冯的回答有点迂腐,但我同意他的观点。
【解决方案2】:
for x in l:
   print(len(x))

打印出来:

3
4
5

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-07-22
    • 1970-01-01
    • 2019-07-13
    • 2021-01-20
    • 1970-01-01
    • 1970-01-01
    • 2012-03-28
    • 2020-12-09
    相关资源
    最近更新 更多