2024-04-24 23:34:48 发布
网友
我有如下清单:
['a', '2', 'b', '1', 'c', '4'] ['d', '5', 'e', '7', 'f', '4', 'g', '6']
我想做一个字典,由字母和数字组成。我是说:
{'a': 2, 'b': 1, 'c': 4, 'd':5, 'e':7, 'f':4, 'g':6}
您可以尝试:
>>> l = ['a', '2', 'b', '1', 'c', '4'] >>> it = iter(l) >>> dict(zip(it, it)) {'a': '2', 'c': '4', 'b': '1'}
首先从列表中创建一个迭代器。然后使用迭代器本身的zip,从列表中获取一对值。最后,使用dict将这些元组转换为所需的字典。你知道吗
dict
如果还要进行字符串到数字的转换,请使用:
{x: int(y) for x, y in zip(it, it)}
编辑
如果您不想使用zip,那么:
zip
{x: int(next(it)) for x in it}
l = ['a', '2', 'b', '1', 'c', '4'] d = {k:v for k,v in zip(l[::2], l[1::2])}
或者,如果您希望这些数字是实际数字:
l = ['a', '2', 'b', '1', 'c', '4'] d = {k:int(v) for k,v in zip(l[::2], l[1::2])}
如果数字可能是浮点值而不是整数,请使用float(v)而不是int(v)。你知道吗
float(v)
int(v)
不使用任何built-in functions:
l = ['a', '2', 'b', '1', 'c', '4'] d = {} l1 = l[::2] l2 = l[1::2] idx = 0 while 1: try: d[l1[idx]] = l2[idx] idx += 1 except IndexError: break
您可以将列表分成两部分,一部分包含字母,另一部分包含键,使用
key_list = old_list[::2] value_list = old_list[1::2]
然后你可以用zip一次循环两个列表,然后你就可以制作字典了。你知道吗
您可以尝试:
首先从列表中创建一个迭代器。然后使用迭代器本身的zip,从列表中获取一对值。最后,使用
dict
将这些元组转换为所需的字典。你知道吗如果还要进行字符串到数字的转换,请使用:
编辑
如果您不想使用
zip
,那么:或者,如果您希望这些数字是实际数字:
如果数字可能是浮点值而不是整数,请使用
float(v)
而不是int(v)
。你知道吗不使用任何built-in functions:
您可以将列表分成两部分,一部分包含字母,另一部分包含键,使用
然后你可以用
zip
一次循环两个列表,然后你就可以制作字典了。你知道吗相关问题 更多 >
编程相关推荐