当前位置: 首页 > 面试题库 >

使用列表/元组/等 从键入vs直接将类型称为列表/元组/等

桂和同
2023-03-14
问题内容

什么是使用的差异ListTuple等等。从typing模块:

from typing import Tuple

def f(points: Tuple):
    return map(do_stuff, points)

与直接引用Python类型相反:

def f(points: tuple):
    return map(do_stuff, points)

我什么时候应该使用另一个?


问题答案:

typing.Tuple并且typing.List
通用类型
; 这意味着您可以指定其
内容 必须是什么类型:

def f(points: Tuple[float, float]):
    return map(do_stuff, points)

这指定传入的元组必须包含两个float值。内置tuple类型无法做到这一点。

typing.Tuple此处的特殊之处在于,它使您可以指定期望的特定数量的元素以及每个位置的类型。如果未设置长度且应重复该类型,请使用省略号:用sTuple[float, ...]表示可变长度。tuple``float

对于typing.List和其他序列类型,通常只为所有元素指定类型;List[str]是任意大小的字符串列表。请注意,函数应优先typing.Sequence作为参数,typing.List通常仅用于返回类型。一般而言,大多数函数将采用任何序列,并且只会迭代,但是当您返回时list,您实际上是在返回特定的可变序列类型。

typing即使您当前不限制内容,也应始终选择通用名称。以后使用泛型类型添加该约束比较容易,因为结果更改会更小。



 类似资料:
  • 问题内容: 我已经编写了此函数,用于将元组列表转换为列表列表。有没有更优雅的/ Pythonic的方式来做到这一点? 问题答案: 您可以使用列表推导:

  • 问题内容: 我如何转换 至 问题答案: 使用简单的列表理解: 会给你:

  • 2.5 列表和元组类型 整数类型、浮点数类型和布尔类型都是最简单的“原子”数据类型,因为这些类型的值 是不可分割的基本数据项。而字符串类型稍微有点复杂,因为字符串可以看成是由许多单字 符组成的有序的集合体,我们可以通过索引操作来深入到字符串内部访问其成员。不过,通 常我们仍然将字符串类型归为简单的基本类型,毕竟构成字符串的成员是非常简单的单字 符。 对于单个数据,我们可以用一个变量来存储。假如程序

  • 问题内容: 我是Python的新手,需要将列表转换为字典。我知道我们可以将元组列表转换为字典。 这是输入列表: 并且我想将此列表转换为元组列表(或直接转换为字典),如下所示: 我们如何在Python中轻松做到这一点? 问题答案: 您想一次将三个项目分组吗? 您想一次分组N个项目吗?

  • 问题内容: 这个问题已经在这里有了答案 : 9年前关闭。 我有两个清单: 我需要从这些列表中创建一个元组列表,如下所示: 我尝试这样做: 但导致: 即x中每个元素与y中每个元素的元组列表…什么是我想做的正确方法?谢谢… 编辑: 在编辑之前提到的其他两个重复是我的错,我将其缩进另一个for循环中是错误的… 问题答案: 使用内置函数: 在Python 3中: 在Python 2中:

  • 问题内容: 我有大量的这种格式的元组列表。每个元组的第二个字段是类别字段。 将其分解为相同类别(A,B,C等)的子列表的最有效方法是什么? 问题答案: 使用itertools.groupby: 产量 或者,要创建一个将每个组作为子列表的列表,可以使用列表理解: to的第二个参数是一个适用于(第一个参数)中每个项目的函数。预期会传回。然后将相同的所有连续项目组合在一起。 operator.itemg