排序列表列表时忽略字符
Ignore characters when sorting list of lists
尝试创建一个函数来从大学数据列表中过滤掉 'University of',以便按字母顺序对它们进行排序。这是我目前的代码:
def filter_list(uni):
for u in uni:
for n in u:
if n.startswith('University of the '):
n = n[18:] + ' University'
elif n.startswith('University of '):
n = n[14:] + ' University'
return uni
预期输出:
('Buckinghamshire New University', '78%', '39%', '82%', '0%', '0%', '52%'),
('Middlesex University', '82%', '48%', '80%', '57%', '75%', '54%'),
('City, University of London', '83%', '51%', '77%', '69%', '63%', '59%'),
('Goldsmiths, University of London',
'85%',
'54%',
'77%',
'70%',
'100%',
'61%'),
('Bedfordshire University', '81%', '42%', '77%', '58%', '57%', '61%'),
('Bolton University', '81%', '48%', '85%', '0%', '0%', '63%')...
当前输出:
('Buckinghamshire New University', '78%', '39%', '82%', '0%', '0%', '52%'),
('Middlesex University', '82%', '48%', '80%', '57%', '75%', '54%'),
('City, University of London', '83%', '51%', '77%', '69%', '63%', '59%'),
('Goldsmiths, University of London',
'85%',
'54%',
'77%',
'70%',
'100%',
'61%'),
('University of Bedfordshire', '81%', '42%', '77%', '58%', '57%', '61%'),
('University of Bolton', '81%', '48%', '85%', '0%', '0%', '63%')...
更改字符串名称的代码有效,只需修改列表中的实际字符串即可。有人知道怎么做吗?
您将您的值分配给 n
,但您再也没有使用 n
。更改 n
不会更改列表中元组中的值。
相反,您可以创建一个新列表并将每所大学追加到该列表中,新列表包含每所大学的过滤值。我还冒昧地使用更具描述性的变量名称。
def filter_university_list(universities):
filtered_universities = []
for university in universities:
current_university = []
for field in university:
if field.startswith('University of the '):
field = field[18:] + ' University'
elif field.startswith('University of '):
field = field[14:] + ' University'
current_university.append(field)
filtered_universities.append(current_university)
return filtered_universities
尝试创建一个函数来从大学数据列表中过滤掉 'University of',以便按字母顺序对它们进行排序。这是我目前的代码:
def filter_list(uni):
for u in uni:
for n in u:
if n.startswith('University of the '):
n = n[18:] + ' University'
elif n.startswith('University of '):
n = n[14:] + ' University'
return uni
预期输出:
('Buckinghamshire New University', '78%', '39%', '82%', '0%', '0%', '52%'), ('Middlesex University', '82%', '48%', '80%', '57%', '75%', '54%'), ('City, University of London', '83%', '51%', '77%', '69%', '63%', '59%'), ('Goldsmiths, University of London', '85%', '54%', '77%', '70%', '100%', '61%'), ('Bedfordshire University', '81%', '42%', '77%', '58%', '57%', '61%'), ('Bolton University', '81%', '48%', '85%', '0%', '0%', '63%')...
当前输出:
('Buckinghamshire New University', '78%', '39%', '82%', '0%', '0%', '52%'), ('Middlesex University', '82%', '48%', '80%', '57%', '75%', '54%'), ('City, University of London', '83%', '51%', '77%', '69%', '63%', '59%'), ('Goldsmiths, University of London', '85%', '54%', '77%', '70%', '100%', '61%'), ('University of Bedfordshire', '81%', '42%', '77%', '58%', '57%', '61%'), ('University of Bolton', '81%', '48%', '85%', '0%', '0%', '63%')...
更改字符串名称的代码有效,只需修改列表中的实际字符串即可。有人知道怎么做吗?
您将您的值分配给 n
,但您再也没有使用 n
。更改 n
不会更改列表中元组中的值。
相反,您可以创建一个新列表并将每所大学追加到该列表中,新列表包含每所大学的过滤值。我还冒昧地使用更具描述性的变量名称。
def filter_university_list(universities):
filtered_universities = []
for university in universities:
current_university = []
for field in university:
if field.startswith('University of the '):
field = field[18:] + ' University'
elif field.startswith('University of '):
field = field[14:] + ' University'
current_university.append(field)
filtered_universities.append(current_university)
return filtered_universities