Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Python中按自定义顺序对字符串项进行排序_Python_String_List_Sorting - Fatal编程技术网

如何在Python中按自定义顺序对字符串项进行排序

如何在Python中按自定义顺序对字符串项进行排序,python,string,list,sorting,Python,String,List,Sorting,我想对特定数据结构中的某些项进行排序,但我将尝试概括我一直遇到的问题 我的输入是一个包含字符串项的列表,我希望这里有三个项,但不一定总是三个。 但即使我想把它分类 我的输入包含 a=['BHR','BHT','BHZ'] 或 a=['BHN','BHE','BHZ'] 也许我们可以期待任何事情,而不是BH*,但我们只关注最后一个字母。 要么是'Z,R,T'对,要么是'Z,N,E'对,如果是任何其他组合,则应停止该过程 输出的顺序应为。 a=['Z','R','T'] 或 a=['Z','N','

我想对特定数据结构中的某些项进行排序,但我将尝试概括我一直遇到的问题

我的输入是一个包含字符串项的列表,我希望这里有三个项,但不一定总是三个。 但即使我想把它分类

我的输入包含
a=['BHR','BHT','BHZ']
a=['BHN','BHE','BHZ']
也许我们可以期待任何事情,而不是
BH*
,但我们只关注最后一个字母。 要么是
'Z,R,T'
对,要么是
'Z,N,E'
对,如果是任何其他组合,则应停止该过程

输出的顺序应为。
a=['Z','R','T']
a=['Z','N','R']
即使列表中没有三项,输出的顺序也应该是这样

def sorter(a):
    n=len(a)
    for i in np.arange(0,n):
        if (a[i].find('Z') == 1):
            a0=a[i]
            continue
        elif (a[i].find('R') == 1):
            a1=a[i]
            continue
        elif (a[i].find('T') == 1):
            a2=a[i]
            continue
    
    a[0]=a0
    a[1]=a1
    a[2]=a2
有人能帮我完成这段代码吗?或者给我一个简单有效的替代方法


注意:我想将项目保存在单个变量中
a0、a1、a2
,然后将它们组合起来。

因此您总共有Z、N、R、T的顺序

a=['BHR','BHT','BHZ']
a.sort(key=lambda t: "ZNRT".find(t[-1]))

所以你有一个Z,N,R,T的顺序

a=['BHR','BHT','BHZ']
a.sort(key=lambda t: "ZNRT".find(t[-1]))

使用
排序
,按
Z、R、T排序

a = ['BHR', 'BHT', 'BHZ', "21a"]
a = sorted(a, key=lambda t: "TRZ".find(t[-1]), reverse=True)

使用
排序
,按
Z、R、T排序

a = ['BHR', 'BHT', 'BHZ', "21a"]
a = sorted(a, key=lambda t: "TRZ".find(t[-1]), reverse=True)

我真的很感激你的解决方案。但在我的情况下,我想将这些项目保存在单个变量中
a0、a1、a2
,然后将它们组合起来。我非常感谢您的解决方案。但在我的例子中,我希望将这些项保存在单个变量
a0、a1、a2
中,并在以后合并它们