Raj*_*han 0 python list-comprehension python-3.x
这是一个清单
l = ['Bear', 'Apple', 'Bread', 'Apes', 'Bones', 'Axes']
Run Code Online (Sandbox Code Playgroud)
我想通过列表理解对此列表进行排序.将"A"开头的单词放在前面,将"B"放在末尾.我希望代码在下面的方式 -
l = [putfirst(i) if i.startswith('A') else putlast(i) else for i in l]
Run Code Online (Sandbox Code Playgroud)
这样做之后,我希望它就像
l = ['Apple','Apes','Axes','Bear','Bread','Bones']
Run Code Online (Sandbox Code Playgroud)
列表推导以您的输入可迭代生成它们的顺序处理事物.它们不能用于重新排序条目.
使用sorted()
或list.sort()
代替:
sorted(l, key=lambda word: word[0])
l.sort(key=lambda word: word[0])
Run Code Online (Sandbox Code Playgroud)
sorted()
生成新列表,list.sort()
对现有列表进行现场排序.
key
这里的callable告诉我sorted()
在决定排序时只使用第一个字母.具有相同起始字母的单词将保留相同的相对顺序:
>>> l = ['Bear', 'Apple', 'Bread', 'Apes', 'Bones', 'Axes']
>>> sorted(l, key=lambda word: word[0])
['Apple', 'Apes', 'Axes', 'Bear', 'Bread', 'Bones']
Run Code Online (Sandbox Code Playgroud)