我有一个简单的代码如下:
for link in links:
products[link] = get_products(link)
Run Code Online (Sandbox Code Playgroud)
我期待links成为一组字符串.但是,有时它只是一个链接,Python似乎将其分解为字符串中的单个字符,这不是我想要的.如何将链接视为一组字符串,即使它是单个字符串?
更新:链接来自:
def read_from_file(name):
with open(name, 'r') as file:
links = file.read()
links_set = links.split('\n')
return links_set
Run Code Online (Sandbox Code Playgroud)
该文件每行包含一个链接.
如果link可以是set单个str元素,请使用isinstance以检查:
for link in {links} if isinstance(links, str) else links:
Run Code Online (Sandbox Code Playgroud)
这是一种代码气味,表明返回的过程links不一致,可能还有其他问题.
我通常也不建议使用isinstance任何东西,因为Python非常适合鸭子打字.在我的经验中,字符串可能是最常见的例外,因为它们(通常不方便)可迭代.检查的优点str是,它是一个非常特殊的类型,它是不太可能鸭打字,同时set,list,tuple等往往是像你这样在这里展示了一个片段互换.
如果你不需要一组,你可以用一个单串links在你喜欢的任何其他容器类型:[links],(links,),等我会建议避免set,因为它摆脱了订购信息,而序列类型没有.
| 归档时间: |
|
| 查看次数: |
82 次 |
| 最近记录: |