【发布时间】:2018-12-18 21:19:01
【问题描述】:
我有一个带有预定义键的结果字典,应该根据数组的切片填充而不显式访问字典键,下面是我的方法的一个示例
my_list = ['a','b','c','d','e']
my_dict = {'first_item':'', 'middle_items':'','last_item':''}
for key in my_dict.keys():
value = my_list.pop()
my_dict.update({k:''.join(value)})
这种方法显然行不通,因为 pop 不会对数组进行切片。如果我想使用切片,我将不得不显式访问字典变量并分配相应的列表切片。
我曾尝试使用列表长度对列表进行切片,但无法找到通用解决方案,这是我的另一种方法
for key in my_dict.keys():
value = ''.join(my_list[:-len(my_list)+1])
del my_list[0]
my_dict.update({k:v})
如何以一般方式对列表进行切片,以便将其拆分为第一项、最后一项和中间项?下面是更新后的字典应该是什么样子的
my_dict = {'first_item':'a', 'middle_items':'b c d','last_item':'e'}
编辑:如果我使用 [0]、[1:-1] 和 [-1] 切片,那么这意味着我必须单独访问每个字典键并更新它,而不是循环遍历它(这是所需的方法)
【问题讨论】:
-
使用索引 [0]、[1:-1]、[-1] 使其通用
-
使用循环是什么意思?您有三种情况,它们似乎都有不同的逻辑,没有理由使用循环。
标签: python python-3.x list dictionary slice