让我们说
def arrange(Lists, type):
'''your code'''
鉴于:
Lists = [[['q', 'Leap Strike', 'Jax'],['w', 'Mocking shout', 'Tryndamere']],[['r', 'Ace in hole', 'Caitlyn']...[button, description, name]]]
还有:
type can be button, description or name
查找
arrange(Lists, name)
预期产出:
[['r', 'Ace in hole', 'Caitlyn'],['q', 'Leap Strike', 'Jax'],['w', 'Mocking shout', 'Tryndamere']...]]
我的方法:
def arrange(Lists, type):
result = []
for list in lists:
result += list
当前输出:
[['q', 'Leap Strike', 'Jax'],['w', 'Mocking shout', 'Tryndamere'],['r', 'Ace in hole', 'Caitlyn']...]]
直到这里,我将所有列表加入到新列表中。下一步是根据类型对列表进行排序。我怎样才能做到这一点?不使用.sort或排序
答案 0 :(得分:1)
from operator import itemgetter
def arrange(lst, column_name, columns=["number", "code", "name"]):
item = columns.index(column_name)
return sorted(lst, key=itemgetter(item))
像
一样运行lst = [('C98124', 'book1', 'Shawn'), ('D12345', 'book2', 'James')]
arrange(lst, "name")
并返回
[('D12345', 'book2', 'James'), ('C98124', 'book1', 'Shawn')]
('Shawn'之前的'James',正如预期的那样)
...用适当的操作替换sorted
。
答案 1 :(得分:0)
def my_sort(a_list):
changes_exist = True
while changes_exist:
changes_exist = False
for i in range(len(a_list)-1):
if a_list[i] > a_list[i+1]:
a_list = do_swap(a_list,i,i+1)
changes_exist = True
return a_list
可能是最简单的排序算法(用适当的功能替换do_swap)并改变搜索比较以满足您的特定需求