Python按字母顺序拆分字符串和排序

时间:2017-10-01 19:18:42

标签: python

有人可以帮我创建一个python程序,将未排序的列表分成2个组,按字母顺序排列在两个组中。然后程序应该按照字母顺序创建一个新列表,方法是从正确的对中取出下一个最大的字母。请不要告诉我以不同的方式执行此操作,因为我的方法必须如上所述进行。谢谢:))

$group

2 个答案:

答案 0 :(得分:0)

如果我理解正确,您正试图将unsorted转换为以下列表:

['D', 'G', 'F', 'H']

如果是这种情况,我修改了你的代码,以便产生正确的输出。

unsorted = ['B', 'D', 'A', 'G', 'F', 'E', 'H', 'C']

n = 4
num = float(len(unsorted))/n
l = [ unsorted [i:i + int(num)] for i in range(0, (n-1)*int(num), int(num))]
l.append(unsorted[(n-1)*int(num):])

# This part has been added in. It sorts each sublist,
# then takes the second element (the character further along the alphabet)
for i in range(len(l)):
    l[i] = sorted(l[i])[1]

print(l)

答案 1 :(得分:0)

假设您正在寻找a = ['B', 'D', 'A', 'G', 'F', 'E', 'H', 'C'] ,我认为以下代码与您的相似,但更清晰一点:

a[i:i+2]

使用列表推导迭代列表sorted(list,reverse=True)中的项目对,并使用groups = [ sorted(a[i:i+2],reverse=True) for i in range(0,len(a),2)] 以反向字母顺序对每对中的项目进行排序:

result = [i[0] for i in groups]

迭代已排序的组,选择一对中的第一项

{{1}}