有没有一个函数可以迭代字符串列表或字符串和整数,并像这样填充字典:
{list[0] : list[1] list[2] : list[3] list[4] : list [5]}
我见过40种不同的方法,它们比只有一个函数来做要复杂得多。我认为想把一个字符串列表转换成一个字典并不是一件深奥的事情。这个函数存在吗?如果存在,函数叫什么?
nuypyhwy1#
对于一个给定的列表L,这里有一个快速的单行方法来以这种方式生成字典:
L
result = dict(zip(L[::2],L[1::2]))
mrwjdhj32#
对于Python 3.12+:
from itertools import batched it = range(6) print(dict(batched(it, n=2)))
{0: 1, 2: 3, 4: 5}
早期Python版本的batched的其他实现可以在这里找到:How do I split a list into equally-sized chunks?
batched
zqry0prt3#
我发现的最不愚蠢的方法是使用for循环将列表分成2个列表,其中:newlist1 = [list[0],list[2],list [3]],etc. newlist2 = [list[1],list[3],list [4]],然后你可以用zip把它们压缩成一个元组列表(),然后用dict将元组列表转换为dict如果列表由字符串和整数的混合组成,并且它是一个字符串,那么尝试在一个for循环中完成所有这些操作总是会给我带来问题。正确设置for循环语句更令人困惑。由于我正在寻找家庭作业问题的帮助,这个解决方案还教你一些其他的函数来 Boot 。
3条答案
按热度按时间nuypyhwy1#
对于一个给定的列表
L
,这里有一个快速的单行方法来以这种方式生成字典:mrwjdhj32#
对于Python 3.12+:
早期Python版本的
batched
的其他实现可以在这里找到:How do I split a list into equally-sized chunks?zqry0prt3#
我发现的最不愚蠢的方法是使用for循环将列表分成2个列表,其中:newlist1 = [list[0],list[2],list [3]],etc. newlist2 = [list[1],list[3],list [4]],然后你可以用zip把它们压缩成一个元组列表(),然后用dict将元组列表转换为dict如果列表由字符串和整数的混合组成,并且它是一个字符串,那么尝试在一个for循环中完成所有这些操作总是会给我带来问题。正确设置for循环语句更令人困惑。由于我正在寻找家庭作业问题的帮助,这个解决方案还教你一些其他的函数来 Boot 。