带有字符和数字的python列表

时间:2018-12-19 12:26:56

标签: python

如果我有一个列表:

x=[1,'A',2,'B',3,'C',2,'A',1,'B']

在上面的列表中,数字和字符相关,因为A包含1,B包含2,C包含3,再次A包含2(总计3),B包含1(总计3)

如果我想查找每个字符最终包含的内容..我该怎么做 我这样做- 我最初在列表x中找到了像y=['A','B','C']之类的字符,然后使用循环对x进行了迭代,每当在x中找到A时,我都会根据索引添加以前的值,依此类推……但有时不起作用。 / p>

1 个答案:

答案 0 :(得分:4)

假设您希望将字典作为输出,则可以执行以下操作:

{'B': [2, 1], 'C': [3], 'A': [1, 2]}

输出

data = [1, 'A', 2, 'B', 3, 'C', 2, 'A', 1, 'B']
result = {letter: number for number, letter in zip(data[::2], data[1::2])}
print(result)

如果只想要最后一个包含 的数字,则可以使用字典理解(请参见文档here):

{'B': 1, 'C': 3, 'A': 2}

输出

data = [1,'A',2,'B',3,'C',2,'A',1,'B']

result = {}
for number, letter in zip(data[::2], data[1::2]):
    result.setdefault(letter, []).append(number)

result = { letter : sum(numbers) for letter, numbers in result.items()}
print(result)

或者,如果您希望所有元素的总和,可以结合使用以上两个答案:

{'A': 3, 'B': 3, 'C': 3}

输出

{{1}}

进一步

  1. setdefault上的文档
  2. zip上的文档