首页 > 解决方案 > 根据列表中分配的特定值附加列表

问题描述

我创建了一个包含 100 名足球运动员的随机数据库,其中包含随机生成的姓名、位置和能力 (1-5)。我想附加该列表,以便它审查每个玩家的能力并根据他们的能力分配一个值(20-100)。1 能力 = 20 值。2=40、3=60、4=80 和 5=100。例如,在 excel 中,我会对能力 (1-5) 进行 vlookup 并根据能力编号应用值。我将如何在 Python 列表中执行此操作?谢谢

from tabulate import tabulate

table = [['Dominik David', 'Defender', '3'],
['Reyansh Jake', 'Defender', '4'],
['Trey Bryant', 'Defender', '5'],
['Sylas Alfredo', 'Attacker', '1'],
['Robin Jeffery', 'Defender', '5'],
['Alfred Conor', 'Defender', '4'],
['Johnny Landyn', 'Defender', '1'],
['Kason James', 'Midfielder', '5'],
['Arjun Cohen', 'Goalkeeper', '4'],
['Joziah Ashton', 'Attacker', '2'],
['Rudy Hector', 'Attacker', '4'],
['Alexzander Lance', 'Goalkeeper', '5'],
['Colten Ashton', 'Goalkeeper', '1'],
['Cairo Marshall', 'Midfielder', '5'],
['Abraham Alvin', 'Attacker', '1'],
['Ezequiel Noe', 'Goalkeeper', '3'],
['Corey Jaxson', 'Attacker', '4'],
['Brixton Asa', 'Attacker', '2'],
['Kayson Pablo', 'Midfielder', '3'],
['Victor Neil', 'Goalkeeper', '4'],
['Jeffrey Azrael', 'Midfielder', '2'],
['Kaiser Lennon', 'Defender', '1'],
['Aaron Travis', 'Attacker', '4'],
['Terry Thiago', 'Attacker', '1'],
['Zaid Emilio', 'Attacker', '3'],
['Kobe Colson', 'Midfielder', '2'],
['Zayden Zeke', 'Goalkeeper', '1'],
['Ricky Colson', 'Defender', '2'],
['Noe Jermaine', 'Midfielder', '4'],
['Yusuf Chandler', 'Midfielder', '5'],
['Jackson Alexis', 'Defender', '5'],
['Drake Khalid', 'Attacker', '3'],
['Nova Julian', 'Defender', '1'],
['Zahir Emory', 'Defender', '4'],
['Mohamed Boston', 'Goalkeeper', '4'],
['Archer Memphis', 'Attacker', '1'],
['Castiel Julius', 'Goalkeeper', '4'],
['Miles Orion', 'Midfielder', '1'],
['Trey Eli', 'Defender', '3'],
['Trevor Elliott', 'Midfielder', '4'],
['Joaquin Ronin', 'Attacker', '3'],
['Keegan Vihaan', 'Attacker', '1'],
['Dalton Landen', 'Midfielder', '2'],
['Royal Westley', 'Attacker', '1'],
['Carl Elliot', 'Attacker', '2'],
['Tristen Peter', 'Goalkeeper', '5'],
['Abel Brett', 'Defender', '4'],
['Gael Zaiden', 'Midfielder', '2'],
['Gavin Dilan', 'Midfielder', '3'],
['Ray Armando', 'Goalkeeper', '5'],
['Paxton Jase', 'Defender', '5'],
['Zeke Eliel', 'Defender', '5'],
['Beau Will', 'Goalkeeper', '5'],
['Axl Leon', 'Goalkeeper', '3'],
['Abdiel Cohen', 'Defender', '3'],
['Thiago Jonah', 'Goalkeeper', '5'],
['Tadeo Ashton', 'Attacker', '5'],
['Niko Brayden', 'Defender', '3'],
['Royce Collin', 'Defender', '3'],
['Colson Ian', 'Attacker', '4'],
['Atreus Johnathan', 'Midfielder', '5'],
['Cash Maison', 'Goalkeeper', '2'],
['Conner Cesar', 'Defender', '5'],
['Emanuel Billy', 'Goalkeeper', '2'],
['Westley Alfred', 'Midfielder', '3'],
['Elliott Andrew', 'Defender', '2'],
['Ronin Hudson', 'Midfielder', '2'],
['Joe Henry', 'Goalkeeper', '3'],
['Ryker Cason', 'Goalkeeper', '3'],
['Idris Brecken', 'Defender', '1'],
['Stephen Archie', 'Defender', '2'],
['Howard Brecken', 'Defender', '3'],
['Genesis Ira', 'Defender', '5'],
['Genesis Leonardo', 'Attacker', '3'],
['Dominic Layne', 'Goalkeeper', '5'],
['Layton Alistair', 'Defender', '3'],
['Dante Quentin', 'Defender', '4'],
['Jayce Kyler', 'Goalkeeper', '5'],
['Theo Pablo', 'Goalkeeper', '2'],
['Reed Brett', 'Goalkeeper', '3'],
['Kamari Atreus', 'Midfielder', '1'],
['Mack Anthony', 'Defender', '1'],
['Mauricio Oscar', 'Midfielder', '2'],
['Ruben Malachi', 'Goalkeeper', '1'],
['Zavier Raylan', 'Goalkeeper', '4'],
['Colten Moises', 'Attacker', '1'],
['Kairo Brooks', 'Midfielder', '3'],
['Theo Chance', 'Attacker', '1'],
['Rocky Isaias', 'Midfielder', '4'],
['Matias Maurice', 'Goalkeeper', '3'],
['Patrick Layne', 'Midfielder', '1'],
['Kaison Lawson', 'Defender', '4'],
['Aryan Bryson', 'Attacker', '5'],
['Quinton Beckham', 'Goalkeeper', '2'],
['Gabriel Charles', 'Defender', '2'],
['Edison Bear', 'Defender', '1'],
['Jasper Demetrius', 'Attacker', '4'],
['Miles Jimmy', 'Attacker', '1'],
['Mathew Finn', 'Attacker', '3'],
['Stefan Corbin', 'Attacker', '4'],]

print(tabulate(table, headers=["ID", "Player Name", "Position", "Ability"], showindex="always"))

标签: python-3.x

解决方案


使用列表理解。

>>> table = [['Dominik David', 'Defender', '3'], ['Reyansh Jake', 'Defender', '4'], ['Trey Bryant', 'Defender', '5'], ['Sylas Alfredo', 'Attacker', '1'], ['Robin Jeffery', 'Defender', '5']]
>>> value = {'1':20, '2':40, '3':60, '4':80, '5':100}
>>> new_table = [x+[value.get(x[-1])] for x in table]
>>> new_table
[['Dominik David', 'Defender', '3', 60], ['Reyansh Jake', 'Defender', '4', 80], ['Trey Bryant', 'Defender', '5', 100], ['Sylas Alfredo', 'Attacker', '1', 20], ['Robin Jeffery', 'Defender', '5', 100]]
>>> 


推荐阅读