>>> lst[::2]
['a', 'b', 'c']
>>> lst[1::2]
['A', 'B', 'C']
>>> zip(lst[::2], lst[1::2])
# this actually gives a zip iterator which contains:
# [('a', 'A'), ('b', 'B'), ('c', 'C')]
>>> dict(zip(lst[::2], lst[1::2]))
# here each tuple is interpreted as key value pair, so finally you get:
{'a': 'A', 'b': 'B', 'c': 'C'}
注意:不要将变量命名为python关键字。你知道吗
正确的程序版本是:
lst = ['a', 'A', 'b', 'B', 'c', 'C']
dct = {}
for n in range(0,int(len(lst)/2)):
dct.update({lst[n]: lst[n+1]})
print(dct)
请尝试以下操作:
解释:
注意:不要将变量命名为python关键字。你知道吗
正确的程序版本是:
你的不起作用,因为你在每次迭代中都使用了切片,而不是访问每个元素。
lst[0::2]
给出['a', 'b', 'c']
,lst[1::2]
给出['A', 'B', 'C']
。因此,在第一次迭代中,当n == 0
您试图用对['a', 'b', 'c'] : ['A', 'B', 'C']
更新字典时,您将得到一个类型错误,因为list
不能被指定为字典的键,因为list
是不可损坏的。你知道吗下面的代码非常适合你的问题。希望这对你有帮助
你可以这样使用字典理解:
相关问题 更多 >
编程相关推荐