Python中如何将带引号字符串作为变量传入Subscription函数?
问题分析与解决
你的代码核心问题是传参结构完全错误:
- 函数
Subscription需要的是多个独立字符串组成的列表,比如["A", "B", "C"] - 但你的循环把所有字母转成带引号的子串后拼接成了一个大字符串,最后传给函数的是
['"A""B""C"']——这是一个仅含1个元素的列表,元素是那个拼接出来的长字符串,和函数要求的参数结构完全不符
正确写法
根本不需要手动给字符串加引号(那是Python语法层面的标识,不是字符串内容的一部分),直接把每个letter添加到列表里即可:
# 普通循环写法 items = [] for letter in alphabet.values(): items.append(letter) Subscription(items=items) # 更简洁的列表推导式写法 Subscription(items=[letter for letter in alphabet.values()])
为什么手动粘贴有用?
你打印出来的内容是"A""B""C",当手动粘贴到items[]里时,Python会把它解析成三个独立的字符串(这时候是在编写代码语法);但代码里的string是一个包含引号和字母的单个字符串内容,不是语法层面的多个元素,所以函数无法识别。
内容的提问来源于stack exchange,提问作者starsnpixel
相关产品推荐
相关产品推荐

