Python 在嵌套列表中搜索以查找值并将值插入到新列表中

标签 python search insert compare nested-lists

我无法弄清楚如何搜索我拥有的嵌套列表,以便找到某些值,以便将不同的值添加到另一个嵌套列表,如果这有意义的话?我将在下面尝试解释。

list1 = [[P1, 3, P2, 1],[P3, 2, P4, 1][P5, 3, P6, 2]]

基本上,这个嵌套列表代表玩家之间游戏中各轮的得分(P1 对 P2 得 3 分,P2 对 P1 得 1 分)。

我还有第二个嵌套列表:

list2 = [[P1], [P2], [P3], [P4], [P5], [P6]]

第二个嵌套列表将代表玩家之间的排名分数。我想要实现的目标是根据第一个嵌套列表中的玩家得分将排名得分插入第二个嵌套列表中。例如,在“list1”中,P1、P3 和 P5 赢得了比赛,因此我想将这些玩家的排名分数“5”(用于演示目的的任意数字)插入到“list2”中,而将其他玩家的排名分数“0”插入玩家,以便列表看起来像这样:

list2 = [[P1, 5], [P2, 0], [P3, 5], [P4, 0], [P5, 5], [P6, 0]]

我正在努力弄清楚如何做到这一点背后的逻辑,因此我们将不胜感激任何帮助

谢谢

最佳答案

你可以试试这个:

P1 = "Team1"
P2 = "Team2"
P3 = "Team3"
P4 = "Team4"
P5 = "Team5"
P6 = "Team6"
n = 5
import itertools
list1 = [[P1, 3, P2, 1],[P3, 2, P4, 1], [P5, 3, P6, 2]]
final_data = list(itertools.chain(*[[[t1, n], [t2, 0]] if s1 > s2 else [[t1, 0], [t2, n]] for t1, s1, t2, s2 in list1]))

输出:

[['Team1', 5], ['Team2', 0], ['Team3', 5], ['Team4', 0], ['Team5', 5], ['Team6', 0]]

关于Python 在嵌套列表中搜索以查找值并将值插入到新列表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47183707/

相关文章:

python - 如何找到 pandas 中每一对后续 DataFrame.index 值之间的差异?

r - 在 R 中搜索列表条目的索引

api - 是否有任何免费的自定义搜索API(例如Google自定义搜索)?

Mysql 触发器执行 INSERT 而不是 UPDATE

"insert"命令时出现 MySQL 错误

python - 以编程方式导入适用于 Windows,但不适用于 Linux

Python日志记录为ini文件中的处理程序添加过滤器?

php - mysql_query 问题 - 语法错误

python - Python 3 类创建的最佳实践

c# - Sharepoint 2010。搜索