通用列表到列表的 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 viewerNamesList[str]

viewerNames = []  # type: List[str]

一些 linter 试图从第一次分配变量的时候就找出它的类型,然后再也不看下去了。当您将[] 分配给viewerName 时,linter 知道它是一个列表,但不知道列表中的内容。

【讨论】:

以上是关于通用列表到列表的 Python 转换 [str] (Python 2.7)的主要内容,如果未能解决你的问题,请参考以下文章

Python中字符串转换列表

在python中,列表,元组,字典,字符串之间是可以互相转换的

Python 字符串/列表/元组/字典之间的相互转换

Python 实现字符串转换成列表 实现str转换list

python 列表,元组,字典,集合,字符串相互转换

python列表转换为字符串