元组足球日历生成器中的元素交换

2024-06-25 23:24:19 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我的密码:

        n = int(len(teams_names) / 2)

    rounds = []
    for i in range(len(teams_names) - 1):
        t = teams_names[:1] + teams_names[-i:] + teams_names[1:-i] if i else teams_names
        rounds.append(list(zip(t[:n], reversed(t[n:]))))
    one_round_length = len(rounds)
    list(rounds)
    for i in range(len(rounds)):
        one_round = rounds[one_round_length-i-1]
        for j in range(len(one_round)):
            one_round[j][0], one_round[j][1] = one_round[j][1], one_round[j][0] 
        rounds.append(one_round)

但我有TypeError:“tuple”对象不支持行中的项分配:

            one_round[j][0], one_round[j][1] = one_round[j][1], one_round[j][0] 

该代码用于创建足球比赛日历。在第一轮中,创建随机的团队对。在第二轮中,我想反转主客团队对

例如,如果没有反向,我有:

[('Atletico Madrid', 'Sevilla FC'), ('Villareal CF', 'Athletic Club')]
[('Atletico Madrid', 'Villareal CF'), ('Sevilla FC', 'Athletic Club')]
[('Atletico Madrid', 'Athletic Club'), ('Sevilla FC', Villareal CF')]

[('Atletico Madrid', 'Athletic Club'), ('Sevilla FC', Villareal CF')]
[('Atletico Madrid', 'Villareal CF'), ('Sevilla FC', 'Athletic Club')]
[('Atletico Madrid', 'Sevilla FC'), ('Villareal CF', 'Athletic Club')]

我想要:

[('Atletico Madrid', 'Sevilla FC'), ('Villareal CF', 'Athletic Club')]
[('Atletico Madrid', 'Villareal CF'), ('Sevilla FC', 'Athletic Club')]
[('Atletico Madrid', 'Athletic Club'), ('Sevilla FC', Villareal CF')]

[('Athletic Club', 'Atletico Madrid'), ('Villareal CF', Sevilla FC')]
[('Villareal CF', 'Atletico Madrid'), ('Athletic Club', 'Sevilla FC')]
[('Sevilla FC', 'Atletico Madrid'), ('Athletic Club', 'Sevilla FC')]

Tags: forlennamesonecffcclubround
1条回答
网友
1楼 · 发布于 2024-06-25 23:24:19

如果您有以下列表

rounds = [
('Atletico Madrid', 'Sevilla FC'), ('Villareal CF', 'Athletic Club'),
('Atletico Madrid', 'Villareal CF'), ('Sevilla FC', 'Athletic Club'),
('Atletico Madrid', 'Athletic Club'), ('Sevilla FC', 'Villareal CF'),
('Atletico Madrid', 'Athletic Club'), ('Sevilla FC', 'Villareal CF'),
('Atletico Madrid', 'Villareal CF'), ('Sevilla FC', 'Athletic Club'),
('Atletico Madrid', 'Sevilla FC'), ('Villareal CF', 'Athletic Club')]

应用以下代码并打印

reversed_rounds = [(y,x) for x,y in rounds]
print(reversed_rounds)

输出:

[('Sevilla FC', 'Atletico Madrid'), ('Athletic Club', 'Villareal CF'), 
('Villareal CF', 'Atletico Madrid'), ('Athletic Club', 'Sevilla FC'), 
('Athletic Club', 'Atletico Madrid'), ('Villareal CF', 'Sevilla FC'), 
('Athletic Club', 'Atletico Madrid'), ('Villareal CF', 'Sevilla FC'), 
('Villareal CF', 'Atletico Madrid'), 'Athletic Club', 'Sevilla FC'), 
('Sevilla FC', 'Atletico Madrid'), ('Athletic Club', 'Villareal CF')]

尝试下面的一个,以得到你想要的

rounds = [
    [('Atletico Madrid', 'Sevilla FC'), ('Villareal CF', 'Athletic Club')],
    [('Atletico Madrid', 'Villareal CF'), ('Sevilla FC', 'Athletic Club')],
    [('Atletico Madrid', 'Athletic Club'), ('Sevilla FC', 'Villareal CF')],
    [('Atletico Madrid', 'Athletic Club'), ('Sevilla FC', 'Villareal CF')],
    [('Atletico Madrid', 'Villareal CF'), ('Sevilla FC', 'Athletic Club')],
    [('Atletico Madrid', 'Sevilla FC'), ('Villareal CF', 'Athletic Club')]
]

final_list = []
for li in rounds:
    inner_list=[]
    for tup in li:
        x,y = tup
        inner_list.append((y,x))
    final_list.append(inner_list)

for item in final_list:
    print(item)

输出:

[('Sevilla FC', 'Atletico Madrid'), ('Athletic Club', 'Villareal CF')]
[('Villareal CF', 'Atletico Madrid'), ('Athletic Club', 'Sevilla FC')]
[('Athletic Club', 'Atletico Madrid'), ('Villareal CF', 'Sevilla FC')]
[('Athletic Club', 'Atletico Madrid'), ('Villareal CF', 'Sevilla FC')]
[('Villareal CF', 'Atletico Madrid'), ('Athletic Club', 'Sevilla FC')]
[('Sevilla FC', 'Atletico Madrid'), ('Athletic Club', 'Villareal CF')]

相关问题 更多 >