为了账号安全,请及时绑定邮箱和手机立即绑定

在 python 中解压为 int 和 string

在 python 中解压为 int 和 string

守候你守候我 2023-04-11 15:58:51
有没有办法解压成不同的类型?是这样的:# data = [4, "lorem", "ipsum", "dolor", "sit", "amet"] (parts, *words) = datadata提供。我从不分配这个值。我添加作为例子。 parts必须是一个 int,列表的所有其余部分都被分配为字符串列表。我发现的唯一方法是将变量重新分配parts为下一个:(parts, *words) = [4, "lorem", "ipsum", "dolor", "sit", "amet"] parts = int(parts)但我不喜欢连续两次重复赋值变量。由于 python 是一种保持简洁的语言,因此我正在寻找解决方案。*编辑:让我知道连续两次重新分配是否有效。
查看完整描述

2 回答

?
BIG阳

TA贡献1859条经验 获得超6个赞

在 Python 的静态类型注释中,lists(以及除tuples 之外的所有序列)被假定为同类类型(它可能仍然是多种类型的联合,但它不是不同的单一类型,具体取决于您正在查看的索引) . 您通过让索引具有一种类型而其他索引具有不同类型来list违反该假设。0尽管 Python 通常不会强制执行 的“预期”用法list,但类型检查器会执行,并且没有任何机制可以解决手动强制转换或类型转换的问题,就像您在此处所做的那样。

简短回答:你在“滥用” lists,typing当你这样做时不会帮助你。因此,要么忽略/禁用此代码的类型检查器(毕竟它会工作得很好),要么忍受毫无意义的转换。


查看完整回答
反对 回复 2023-04-11
?
慕森王

TA贡献1777条经验 获得超3个赞

这个怎么样?它测试每个项目的类型,并根据需要将其放入适当的列表中。


data = [4, "lorem", "ipsum", "dolor", "sit", "amet"]

parts = []

words = []

[parts.append(item) if type(item) == int else words.append(item) for item in data]


查看完整回答
反对 回复 2023-04-11
  • 2 回答
  • 0 关注
  • 112 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信