如何遍历一个元组 (str),然后 return 一个包含键(来自元组)和键的索引作为值的字典?
How can you iterate through a tuple (str), then return a dictionary containing the keys (from the tuple) and the index of the keys as the values?
如何遍历元组 (str),然后 return 包含键(来自元组)和键索引作为值的字典?
输入:
tup = ('A', 'A', 'B', 'B', 'A')
Return 字典如下所示:
{'A': [0, 1, 4], 'B': [2, 3]}
使用 defaultdict
:
tup = ('A', 'A', 'B', 'B', 'A')
from collections import defaultdict
d = defaultdict(list)
for i,k in enumerate(tup):
d[k].append(i)
dict(d)
或者用古典词典:
d = {}
for i,k in enumerate(tup):
if k in d:
d[k].append(i)
else:
d[k] = [i]
输出:{'A': [0, 1, 4], 'B': [2, 3]}
您也可以使用 dict.setdefault
,但如果您不熟悉 setdefault
方法,我发现它不是很明确:
d = {}
for i,k in enumerate(tup):
d.setdefault(k, []).append(i)
一种简单的方法是为元组中的每个唯一元素分配一个空列表。然后追加对应列表中每个元素的索引。
这是我的代码:-
我正在创建一个空字典。
tup = ('A', 'A', 'B', 'B', 'A')
d = {}
我将字典中的一个空列表分配给元组中的每个唯一元素。
for i in range(len(tup)):
d[tup[i]] = []
在字典中的相应列表中附加元组的每个元素的索引
for j in range(len(tup)):
d[tup[j]].append(j)
完整代码:-
tup = ('A', 'A', 'B', 'B', 'A')
d = {}
for i in range(len(tup)):
d[tup[i]] = []
for j in range(len(tup)):
d[tup[j]].append(j)
print(d)
如何遍历元组 (str),然后 return 包含键(来自元组)和键索引作为值的字典?
输入:
tup = ('A', 'A', 'B', 'B', 'A')
Return 字典如下所示:
{'A': [0, 1, 4], 'B': [2, 3]}
使用 defaultdict
:
tup = ('A', 'A', 'B', 'B', 'A')
from collections import defaultdict
d = defaultdict(list)
for i,k in enumerate(tup):
d[k].append(i)
dict(d)
或者用古典词典:
d = {}
for i,k in enumerate(tup):
if k in d:
d[k].append(i)
else:
d[k] = [i]
输出:{'A': [0, 1, 4], 'B': [2, 3]}
您也可以使用 dict.setdefault
,但如果您不熟悉 setdefault
方法,我发现它不是很明确:
d = {}
for i,k in enumerate(tup):
d.setdefault(k, []).append(i)
一种简单的方法是为元组中的每个唯一元素分配一个空列表。然后追加对应列表中每个元素的索引。
这是我的代码:-
我正在创建一个空字典。
tup = ('A', 'A', 'B', 'B', 'A')
d = {}
我将字典中的一个空列表分配给元组中的每个唯一元素。
for i in range(len(tup)):
d[tup[i]] = []
在字典中的相应列表中附加元组的每个元素的索引
for j in range(len(tup)):
d[tup[j]].append(j)
完整代码:-
tup = ('A', 'A', 'B', 'B', 'A')
d = {}
for i in range(len(tup)):
d[tup[i]] = []
for j in range(len(tup)):
d[tup[j]].append(j)
print(d)