这是一个清单
if (answer.hasMoreElements()) {
while(answer.hasMoreElements()) {
Person person = new Person();
SearchResult attrs = ((SearchResult) answer.next());
String names[] = attrs.getName().split(",");
String name[] = names[0].split("=");
usersList.add(name[1]);
}
}else{
throw new Exception("Invalid User");
}
我想通过列表理解对此列表进行排序。将“A”开头的单词放在前面,将“B”放在末尾。我希望代码在下面的方式 -
#!/usr/bin/env bash
#
# Usage:
#
# ./noseTest <filename> <method_name>
#
# e.g.:
#
# ./noseTest test/MainTest.py mergeAll
#
# It is assumed that the file and the test class have the _same name_
# (e.g. the test class `MainTest` is defined in the file `MainTest.py`).
# If you don't follow this convention, this script won't work for you.
#
testFile="$1"
testMethod="$2"
testClass="$(basename "$testFile" .py)"
nosetests "$testFile:$testClass.test_$testMethod"
这样做之后我希望它像
l = ['Bear', 'Apple', 'Bread', 'Apes', 'Bones', 'Axes']
答案 0 :(得分:5)
列表推导按照您的输入迭代生成它们的顺序处理事物。他们无法用于重新排序条目。
改为使用sorted()
或list.sort()
:
sorted(l, key=lambda word: word[0])
l.sort(key=lambda word: word[0])
sorted()
生成一个新列表,list.sort()
就地对现有列表进行排序。
此处key
可调用告诉sorted()
在决定排序时仅使用第一个字母。具有相同起始字母的单词将保留相同的相对顺序:
>>> l = ['Bear', 'Apple', 'Bread', 'Apes', 'Bones', 'Axes']
>>> sorted(l, key=lambda word: word[0])
['Apple', 'Apes', 'Axes', 'Bear', 'Bread', 'Bones']
答案 1 :(得分:4)
您可以使用sorted()
功能:
l = ['Bear','Apple','Bread','Apes','Bones','Axes']
new_l = sorted(l, key=lambda x: x[0])
输出:
['Apple', 'Apes', 'Axes', 'Bear', 'Bread', 'Bones']