Python 如何删除元组列表中的千分隔符?
我有一个master_列表,其中包含一个列表列表,我试图将其转换为一个元组列表,其中只包含第[3]行:所玩游戏的数量,以及第[0]行:玩家的姓名。该列表将按玩过的游戏(从高到低)排序,只有前十名被选中 返回,即列表包含10个按降序排序的元组。 在排序之前,我必须删除逗号并转换为整数 我的代码的输出是正确的,除了千个分隔符仍然存在。这是我的代码:Python 如何删除元组列表中的千分隔符?,python,python-3.x,list,tuples,Python,Python 3.x,List,Tuples,我有一个master_列表,其中包含一个列表列表,我试图将其转换为一个元组列表,其中只包含第[3]行:所玩游戏的数量,以及第[0]行:玩家的姓名。该列表将按玩过的游戏(从高到低)排序,只有前十名被选中 返回,即列表包含10个按降序排序的元组。 在排序之前,我必须删除逗号并转换为整数 我的代码的输出是正确的,除了千个分隔符仍然存在。这是我的代码: def games_played(master_list): container2 = [] for line in master_list:
def games_played(master_list):
container2 = []
for line in master_list:
try:
int(line[3])
continue
except ValueError:
for i in line[3]:
i = i.replace(",", "")
continue
container2.append(((line[3]), line[0]))
container2.sort(reverse = True)
container2 = container2[:10]
print(container2)
这是我的输出:
[
('1,767', 'Gordie Howe'),
('1,756', 'Mark Messier'),
('1,733', 'Jaromir Jagr'),
('1,731', 'Ron Francis'),
('1,514', 'Steve Yzerman'),
('1,487', 'Wayne Gretzky'),
('1,451', 'Teemu Selanne'),
('1,409', 'Paul Coffey'),
('1,396', 'Stan Mikita'),
('1,378', 'Joe Sakic')
]
只需添加行(在上次分配到container2之后):
使用
replace
的for
循环没有任何效果。分配给i
没有意义,因为它是循环变量。另外,行int(行[3])
也不起任何作用。只需执行container2.append((int(第[3]行).replace(',',''),第[0]行))
而不使用整个尝试/除了代码的缩进看起来是破损的。使用list()
,map()
和lambda
来理解列表有什么意义?
container2 = list(map(lambda x: (int(x[0].replace(',','')),x[1]),container2))