You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python动态赋值报Cannot assign to literal错误如何解决

报错根因
  • 你遇到的Cannot assign to literal报错是Python语法限制导致:你试图给f-string生成的字符串字面量直接赋值,Python不允许将字符串作为变量名来接收赋值
  • 你的append操作逻辑颠倒:你想把t-SNE运算结果存入tsne_results列表,代码里却写反了调用主体和参数,会进一步触发报错
  • 不需要单独创建tsne_results_50这类带后缀的独立变量,直接把运算结果存入列表/字典即可满足需求
修复方案

方案1:直接存入列表(最符合你要生成tsne_results列表的需求)

perplexity_values = [5, 30, 50, 100]
tsne_results = []

for value in perplexity_values: 
    tsne = TSNE(n_components=2, verbose=1, perplexity=value, n_iter=250)
    res = tsne.fit_transform(X)
    tsne_results.append(res)

运行后tsne_results的元素顺序和perplexity_values一一对应,分别是perplexity为5、30、50、100时的运算结果。

方案2:用字典存储(方便按perplexity值快速调取对应结果)

如果需要通过类似tsne_results_50的名称直接取结果,可以用字典实现:

perplexity_values = [5, 30, 50, 100]
tsne_results_dict = {}
tsne_results = []

for value in perplexity_values: 
    tsne = TSNE(n_components=2, verbose=1, perplexity=value, n_iter=250)
    res = tsne.fit_transform(X)
    tsne_results_dict[f'tsne_results_{value}'] = res
    tsne_results.append(res)

后续可以通过tsne_results_dict['tsne_results_50']直接调取对应perplexity的结果,同时tsne_results列表也符合你最初的需求。

内容的提问来源于stack exchange,提问作者THEODOROPOULOS DIMITRIS

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 10:30:03