我有包含姓名和分数的列表,例如:
[['AMY', '2', '9', '10'], ['ANNA', '10', '4', '7'], ['BOB', '6', '7', '10']]
我希望它最终像这样:
[['AMY', 2, 9, 10], ['ANNA', 10, 4, 7], ['BOB', 6, 7, 10]]
我需要将数字转换为整数,因为它们在尝试使用 max() 函数时给我带来了问题,因为它无法将 10 识别为最大的项目。我已经尝试了很长时间,但我不断收到不同类型的错误。我四处搜索,似乎每个人都告诉我使用 map 或列表理解,但这些似乎都不起作用。
最佳答案
data = [['AMY', '2', '9', '10'], ['ANNA', '10', '4', '7'], ['BOB', '6', '7', '10']]
dict_data = {sublist[0]: list(map(int, sublist[1:])) for sublist in data}
现在您可以通过姓名访问每个人的电话号码,例如:
>>> print(dict_data['AMY'])
[2, 9, 10]
>>> print(max(dict_data['AMY']))
10
对于字典创建,您使用子列表中的第一个元素作为键,然后使用 map()
将其余元素转换为整数。正如您可能在其他问题中读到的那样, list(map(int, sublist[1:]))
与 [int(i) for i in sublist[1:] 相同]
。
关于python - 如何在Python中将列表的一部分转换为整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36141677/