python - Python函数将字符串附加到具有变量名的列表中
问题描述
我想将值附加到变量 s_stat、f_stat 和 stat(例如对于 stats_players(pass),变量应该是 s_pass、f_pass 和 pass)。它给了我未定义 s_stat 的错误。可能不会将变量检测为 s_pass。
功能
def stats_players(stat,player_id):
a = {}
b = {}
if stat != "Start" and stat != "FormationChange" :
print(stat)
for js in data_events[str(stat)]:
icdType = js["playerId"]
if icdType in a:
a[icdType].append(js)
else:
a[icdType] = [js]
data = json.dumps(a)
data = json.loads(data)
if str(player_id) in data == True:
for js in data[str(player_id)]:
icdType = js["outcomeType"]["displayName"]
if icdType in b:
b[icdType].append(js)
else:
b[icdType] = [js]
data = json.dumps(b)
data = json.loads(data)
if "Successful" in data != "False":
suc = len(data["Successful"])
s_stat.append(len(data["Successful"]))
else:
suc = 0
s_stat.append("0")
if "Unsuccessful" in data != "False":
fail = len(data["Unsuccessful"])
f_stat.append(len(data["Unsuccessful"]))
else:
fail = 0
f_stat.append("0")
Pass.append(suc+fail)
else:
suc = 0
fail = 0
Pass.append(suc+fail)
s_stat.append(suc)
s_stat.append(fail)
代码
Pass = []
f_Pass = []
s_Pass = []
stats_players("Pass",player_id)
错误
Traceback (most recent call last):
File "test.py", line 446, in <module>
stats_players("Pass",player_id)
File "test.py", line 98, in stats_players
s_stat.append(suc)
NameError: name 's_stat' is not defined
解决方案
您需要首先声明 s_stat 是一个列表。s_stat = [] 这会让编译器知道 s_stat 是一个列表
推荐阅读
- mysql - 使用嵌套查询和内部联接清理 SQL 查询
- apache-spark - Spark 从另一个国家/地区获取当前日期
- java - 为什么我的 onStart() 函数在项目的主要活动开始时不起作用?
- python - 是否可以通过 OpenCV 本身获得视频设置的极值?
- java - 如果我添加 JButton,Java FocusListener 和 KeyListener 将不起作用
- mysql - 编写mySql命令根据性别获取元数据?
- swift - 映射组合数组时如何避免嵌套闭包?
- router - 在 cisco 路由器上为两个端口配置相同的 VLAN
- php - 使用php从后端插入时如何检索图像
- node.js - NodeJS v12.13.0 中的私有静态方法 - 语法错误