python - 如何在Python中将列表的一部分转换为整数?

标签 python

我有包含姓名和分数的列表,例如:

[['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/

相关文章:

python - VS 代码 'Run Python in Terminal' 播放按钮不工作

python - 使用 python open-cv 分割报纸文章

python - 不使用 IDE 运行 Python 脚本

python - 在 subprocess.check_output 中添加超时

python - 需要解压的值太多(预计为 2 个)[列表]

python - 如何计算水平线和树线树形图之间的线交叉Python

python - Python 3 中的三向字符串比较

Python 没有提取预期的模式

python - 检查是否存在史诗问题,如果不存在,则创建一个新的史诗问题

python - 在脚本中使用 Django 模型