问题:
所以我试图按字母顺序对我的字符串列表进行排序,也许我忽略了一些非常小的问题。我已经尝试了.sort和sorted(),但也许我没有正确执行?
这是我的代码:
words = input("Words: ")
list1 = []
list1.append(words.split())
print(sorted(list1))
预期输出-
Input: "a b d c"
Output: ['a', 'b', 'c', 'd']
当前输出-
Input: "a b d c"
Output: [['a', 'b', 'd', 'c']]
答案 0 :(得分:2)
您的代码不起作用,因为您正在尝试对列表内的列表进行排序。
当您致电words.split()
时,它将返回list
。因此,当您执行list1.append(words.split())
时,它会将列表追加到list1
中。
您应该这样做:
words = input("Words: ")
list1 = words.split()
print(sorted(list1))
答案 1 :(得分:1)
您可以尝试以下简单方法:
public function index(Request $request)
{
$user = $request->user();
$feedbacks = Feedback::query()
->when($user->hasRole('admin') !== true, function (Builder $query) use ($user) {
$query->whereHas('user', function ($query) use ($user) {
$query->where('email', $user->email);
});
})
->when($request->has('search'), function (Builder $query) use ($request) {
$query->join('students', 'feedbacks.fk_student', '=', 'students.id')->orderBy('students.name', 'asc')->where('students.name','like','%'.$request->input('search').'%');
})
->paginate(5);
return view('admin.feedbacks.index', compact('feedbacks'))
->with('display_search', $user->hasRole('admin'));
}
我已经测试过了。它正在工作
答案 2 :(得分:0)
在不背离当前工作的情况下,您需要做的唯一修改就是修改代码:
words = input("Words: ")
list1 = []
list1.append(words.split())
print(sorted(list1[0]))
您在做什么错的说明:
造成混乱的根本原因是 append()
。根据python docs, append()
仅采用了一个论点
所以当您这样做时,
words.split()
您尝试将多个元素添加到list1
中,并且当您在列表中 append()
时,< em>它作为嵌套列表(即另一个列表内的列表)追加。
为支持我的解释,您可以看到您的代码已通过简单的[0]
print(sorted(list1[0]))
这是因为您的输入存储为列表的列表,并且存储在第一个索引中(注意点-python列表中的第一个索引为0,因此使用list1[0]
)>
请让我知道,如果我能以更简单的方式对其进行解释,或者是否有其他混淆可以帮助上述解释。