Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.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_List_Loops_Dictionary - Fatal编程技术网

Python:在满足条件的情况下向字典添加列表项

Python:在满足条件的情况下向字典添加列表项,python,list,loops,dictionary,Python,List,Loops,Dictionary,我尝试添加数字之间的差异,直到总差异>20,将数字附加到一个列表中,该列表成为一个字典值,其中键是数字集。我现在得到一个超出范围的错误列表 输出应该是多个字典条目,其列表差异加起来最接近的数字

我尝试添加数字之间的差异,直到总差异>20,将数字附加到一个列表中,该列表成为一个字典值,其中键是数字集。我现在得到一个超出范围的错误列表

输出应该是多个字典条目,其列表差异加起来最接近的数字<20

number_set = 1
number_dict = {}

num_list = [1, 3, 5, 9, 18, 20, 22, 25, 27, 31]

incl_num_list = []
total = 0

for x in range(1, len(num_list)):

    if total < 20:
        total = total + (num_list[x+1] - num_list[x])
        incl_num_list.append(num_list[x])
    else:
        number_dict.update({km: num_list})
        km += 1
        incl_num_list = []
        total = 0

for k, v in number_dict.items():
    print k
    print v

首先,在分配给任何对象之前,您正在使用
km

Traceback (most recent call last):
  File "<pyshell#29>", line 15, in <module>
    number_dict.update({km: num_list})
NameError: name 'km' is not defined
回溯(最近一次呼叫最后一次):
文件“”,第15行,在
数字目录更新({km:num\u list})
NameError:未定义名称“km”

正如ndpu所指出的,您的最后一个x将超出您的数值列表的范围。

首先,您正在使用
km
进行分配

Traceback (most recent call last):
  File "<pyshell#29>", line 15, in <module>
    number_dict.update({km: num_list})
NameError: name 'km' is not defined
num_list = [1, 3, 5, 9, 18, 20, 22, 25, 27, 31]

overflow = 20
total = 0
key = 1
number_dict = {1: [1]}

for left, right in zip(num_list[:-1], num_list[1:]):
    total += right - left
    if total >= overflow:
        key += 1
        number_dict[key] = [right]
        total = 0
    else:
        number_dict[key].append(right)

for k, v in sorted(number_dict.items()):
    print k
    print v
回溯(最近一次呼叫最后一次):
文件“”,第15行,在
数字目录更新({km:num\u list})
NameError:未定义名称“km”

正如ndpu所指出的,您的最后一个x将超出您的数值列表的范围。

首先,您正在使用
km
进行分配

Traceback (most recent call last):
  File "<pyshell#29>", line 15, in <module>
    number_dict.update({km: num_list})
NameError: name 'km' is not defined
num_list = [1, 3, 5, 9, 18, 20, 22, 25, 27, 31]

overflow = 20
total = 0
key = 1
number_dict = {1: [1]}

for left, right in zip(num_list[:-1], num_list[1:]):
    total += right - left
    if total >= overflow:
        key += 1
        number_dict[key] = [right]
        total = 0
    else:
        number_dict[key].append(right)

for k, v in sorted(number_dict.items()):
    print k
    print v
回溯(最近一次呼叫最后一次):
文件“”,第15行,在
数字目录更新({km:num\u list})
NameError:未定义名称“km”

正如ndpu所指出的,您的最后一个x将超出您的数值列表的范围。

首先,您正在使用
km
进行分配

Traceback (most recent call last):
  File "<pyshell#29>", line 15, in <module>
    number_dict.update({km: num_list})
NameError: name 'km' is not defined
num_list = [1, 3, 5, 9, 18, 20, 22, 25, 27, 31]

overflow = 20
total = 0
key = 1
number_dict = {1: [1]}

for left, right in zip(num_list[:-1], num_list[1:]):
    total += right - left
    if total >= overflow:
        key += 1
        number_dict[key] = [right]
        total = 0
    else:
        number_dict[key].append(right)

for k, v in sorted(number_dict.items()):
    print k
    print v
回溯(最近一次呼叫最后一次):
文件“”,第15行,在
数字目录更新({km:num\u list})
NameError:未定义名称“km”
正如ndpu指出的,您的最后一个x将超出您的num_列表的范围

num_list = [1, 3, 5, 9, 18, 20, 22, 25, 27, 31]

overflow = 20
total = 0
key = 1
number_dict = {1: [1]}

for left, right in zip(num_list[:-1], num_list[1:]):
    total += right - left
    if total >= overflow:
        key += 1
        number_dict[key] = [right]
        total = 0
    else:
        number_dict[key].append(right)

for k, v in sorted(number_dict.items()):
    print k
    print v
产出:

1
[1, 3, 5, 9, 18, 20]
2
[22, 25, 27, 31]
产出:

1
[1, 3, 5, 9, 18, 20]
2
[22, 25, 27, 31]
产出:

1
[1, 3, 5, 9, 18, 20]
2
[22, 25, 27, 31]
产出:

1
[1, 3, 5, 9, 18, 20]
2
[22, 25, 27, 31]



你应该发布追踪。假设问题是“为什么我会出现此错误?”因为我没有看到实际的问题。回溯(最近一次调用last):文件“”,第15行,在number_dict.update({km:num_list})NameError:name“km”没有为第一个循环
num_list[x+1]中的last
x
定义
将超出范围…您可能希望从范围(0,len(num\u list)-1)中的x的
开始:
然后您可能希望
number\u dict.update({km:incl\u num\u list})
您应该发布回溯。假设问题是“为什么我会出现此错误?”因为我没有看到实际的问题。回溯(最近一次调用last):文件“”,第15行,在number_dict.update({km:num_list})NameError:name“km”没有为第一个循环
num_list[x+1]中的last
x
定义
将超出范围…您可能希望从范围(0,len(num\u list)-1)中的x的
开始:
然后您可能希望
number\u dict.update({km:incl\u num\u list})
您应该发布回溯。假设问题是“为什么我会出现此错误?”因为我没有看到实际的问题。回溯(最近一次调用last):文件“”,第15行,在number_dict.update({km:num_list})NameError:name“km”没有为第一个循环
num_list[x+1]中的last
x
定义
将超出范围…您可能希望从范围(0,len(num\u list)-1)中的x的
开始:
然后您可能希望
number\u dict.update({km:incl\u num\u list})
您应该发布回溯。假设问题是“为什么我会出现此错误?”因为我没有看到实际的问题。回溯(最近一次调用last):文件“”,第15行,在number_dict.update({km:num_list})NameError:name“km”没有为第一个循环
num_list[x+1]中的last
x
定义
将超出范围…您可能希望从范围(0,len(num\u list)-1)中的x开始
然后您可能希望
数字目录更新({km:incl\u num\u list})
这看起来是一个优雅的解决方案。你当然是为他做的。语义命名也做得很好。尽管你可以利用zip的截短功能,将num_list[:-1]变成num_list.Perfect。谢谢,伙计们。看起来这是一个优雅的解决方案。你当然是为他做的。语义命名也做得很好。尽管你可以利用zip的截短功能,将num_list[:-1]变成num_list.Perfect。谢谢,伙计们。看起来这是一个优雅的解决方案。你当然是为他做的。语义命名也做得很好。尽管你可以利用zip的截短功能,将num_list[:-1]变成num_list.Perfect。谢谢,伙计们。看起来这是一个优雅的解决方案。你当然是为他做的。语义命名也做得很好。尽管你可以利用zip的截短功能,将num_list[:-1]变成num_list.Perfect。谢谢你们,这不是一个真正的答案。从问题输出中,您可以猜测初始值是
1
@njzk2,那么我希望您投票支持另一个响应,这是一个完整的工作实现。我没有回答。从问题输出中,您可以猜测初始值是
1
@njzk2,那么我希望您投票支持另一个响应,这是一个完整的工作实现。我没有回答。从问题输出中,您可以猜测初始值是
1
@njzk2,那么我希望您投票支持另一个响应,这是一个完整的工作实现。我没有回答。从问题输出中,您可以猜测初始值是
1
@njzk2,那么我希望您投票支持另一个响应,这是一个完整的工作实现。是的。