通用列表到列表的 Python 转换 [str] (Python 2.7)
Posted
技术标签:
【中文标题】通用列表到列表的 Python 转换 [str] (Python 2.7)【英文标题】:Python Conversion of Generic list to List[str] (Python 2.7) 【发布时间】:2021-03-20 22:54:45 【问题描述】:我的代码遇到问题。我需要从字典中提取字符串列表(由方法 1 返回)并将其作为参数传递给方法 2。
viewerIDs = Parent.GetViewerList()
if (len(viewerIDs) <= 0):
return
viewerIDsNames = Parent.GetDisplayNames(viewerIDs)
viewerNames = []
for key in viewerIDsNames:
viewerNames.append(str(viewerIDsNames[key]))
#Get their ranks
viewerRanks = Parent.GetRanksAll (viewerNames)
我在最后一行得到以下错误
预期列表[str],得到列表
我尝试了以下方法来设置 viewerNames,但我遇到了同样的错误
#viewerNames = viewerIDsNames.items()
#viewerNames = list(viewerIDsNames.values())
#viewerNames = map(str,viewerIDsNames.values())
#viewerNames = [str(name) for name in viewerIDsNames]
谁能指出我如何正确投射这个。
问候, 约书亚。
【问题讨论】:
您是否在运行此代码或尝试对其进行 lint 处理时收到错误?如果是后者,你需要告诉 linter viewerNames 是List[str]
。 viewerNames = [] # type: List[str]
谢谢弗兰克。我相信这行得通。编辑:我如何将其标记为已回答。
我会将我的评论添加为实际答案,您可以“检查”它。
【参考方案1】:
我怀疑你是从 linter 而不是 Python 本身得到这个答案的。你需要告诉 linter viewerNames
是 List[str]
viewerNames = [] # type: List[str]
一些 linter 试图从第一次分配变量的时候就找出它的类型,然后再也不看下去了。当您将[]
分配给viewerName
时,linter 知道它是一个列表,但不知道列表中的内容。
【讨论】:
以上是关于通用列表到列表的 Python 转换 [str] (Python 2.7)的主要内容,如果未能解决你的问题,请参考以下文章