Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python中如何在字典条件下执行字符串加字符串操作?_Python_Python 3.x_Dictionary - Fatal编程技术网

在python中如何在字典条件下执行字符串加字符串操作?

在python中如何在字典条件下执行字符串加字符串操作?,python,python-3.x,dictionary,Python,Python 3.x,Dictionary,我的功能是 def calResult(w,t,l,team): wDict={} for item in team: for x in w: wDict[item]=int(wDict[item])+int(x[item.index(" "):item.index(" ")+1]) for x in t: wDict[item]=int(wDict[item])+int(x[item.index("

我的功能是

def calResult(w,t,l,team):
    wDict={}
    for item in team:
        for x in w:
            wDict[item]=int(wDict[item])+int(x[item.index(" "):item.index(" ")+1])
        for x in t:
            wDict[item]=int(wDict[item])+int(x[item.index(" "):item.index(" ")+1])
    return wDict
假设我创建了一个空的dict,然后我使用
wDict[item]
为每个键赋值(这些键来自一个团队列表,我们有一个类似于b c d…的团队)。
x[item.index(“”):item.index(“”+1)]
部分将在int方法运行后返回一个值。但是pythonshell返回了这个消息

Traceback (most recent call last):
  File "C:\Program Files (x86)\Wing IDE 101 4.1\src\debug\tserver\_sandbox.py", line 66, in <module>
  File "C:\Program Files (x86)\Wing IDE 101 4.1\src\debug\tserver\_sandbox.py", line 59, in calResult
builtins.KeyError: 'Torino'
回溯(最近一次呼叫最后一次):
文件“C:\ProgramFiles(x86)\Wing IDE 101 4.1\src\debug\tserver\\u sandbox.py”,第66行,在
calResult中的文件“C:\Program Files(x86)\Wing IDE 101 4.1\src\debug\tserver\\u sandbox.py”,第59行
builtins.KeyError:“都灵”

我不明白我的代码中到底是什么错误。

您不能第一次访问
wDict[item]
,因为您的dict是空的

这样就可以了:

wDict[item] = 1
但你不能这样做:

wDict[item] = wDict[item] + 1
也许您想使用以下语法:

wDict[item] = int(wDict.get(item, 0)]) + int(x[item.index(" "):item.index(" ") + 1])

您不能第一次访问
wDict[item]
,因为您的dict是空的

这样就可以了:

wDict[item] = 1
但你不能这样做:

wDict[item] = wDict[item] + 1
也许您想使用以下语法:

wDict[item] = int(wDict.get(item, 0)]) + int(x[item.index(" "):item.index(" ") + 1])

看起来您试图在同一赋值语句中使用wDict[item]作为右值和左值,而wDict[item]尚未初始化

wDict[item]=int(wDict[item])+int(x[item.index(" "):item.index(" ")+1])

您试图访问密钥项的“值”,但没有初始化任何密钥-值对。

看起来您试图在同一赋值语句中使用wDict[item]作为右值和左值,而wDict[item]尚未初始化

wDict[item]=int(wDict[item])+int(x[item.index(" "):item.index(" ")+1])

您正在尝试访问键项的“值”,但没有初始化键值对。

我不太确定您在这里尝试做什么(首先,考虑使用比
x
更具描述性的变量名),但问题是:

wDict[item]=int(wDict[item])+int(x[item.index(" "):item.index(" ")+1])
wDict[item]=int(wDict[item])+...
第一次执行此操作时,
wDict[item]
不存在,因此出现
KeyError

我想你想要的是:

wDict[item] = wDict.get(item, 0) + int(x[item.index(" "):item.index(" ")+1])
.get()
接受一个键,如果该键不存在,则使用默认值


您可能还想在
集合中使用
计数器
类,它被设计为在这种情况下将不存在的键默认为零。

我不太确定您在这里要做什么(首先考虑使用比
x
更具描述性的变量名),但问题是:

wDict[item]=int(wDict[item])+...
第一次执行此操作时,
wDict[item]
不存在,因此出现
KeyError

我想你想要的是:

wDict[item] = wDict.get(item, 0) + int(x[item.index(" "):item.index(" ")+1])
.get()
接受一个键,如果该键不存在,则使用默认值

您可能还想使用
集合
中的
计数器
类,该类的设计目的是将不存在的键默认为零,以适应这种情况