Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.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_Sorting_Alignment - Fatal编程技术网

Python 如何将字符串列表向右对齐?

Python 如何将字符串列表向右对齐?,python,sorting,alignment,Python,Sorting,Alignment,我有没有办法将字符串列表向右“对齐”?我在这里进行计数排序,我想从右边对我的角色进行排序 例如,给定一个字符串列表 例如,列表=['abc','a','qwerty','cd'] 列表中最长字符串的长度为6(qwerty) 由于我的其他字符串与qwerty的长度不同,因此会出现一个错误,如何将所有字符串“对齐”到右侧?因此,当我尝试从最后一个字母表中排序时,“a”也将与“qwerty”中的“y”对齐 a cd abc qwerty 我想在没有填充的情况下完成这个 lis

我有没有办法将字符串列表向右“对齐”?我在这里进行计数排序,我想从右边对我的角色进行排序

例如,给定一个字符串列表

例如,列表=['abc','a','qwerty','cd']

列表中最长字符串的长度为6(qwerty)

由于我的其他字符串与qwerty的长度不同,因此会出现一个错误,如何将所有字符串“对齐”到右侧?因此,当我尝试从最后一个字母表中排序时,“a”也将与“qwerty”中的“y”对齐

     a
    cd
   abc
qwerty
我想在没有填充的情况下完成这个

list_1 = ['abc', 'a','qwerty', 'cd']
biggest = max(list, key=len)
biggest=len(biggest)
list_2=[]
//with padding
for i in list_1:
   list_2.append(' '*(biggest-len(i))+i)
//without padding
for i in list_1:
   list_2.append(f"{i:>{biggest}}")
我同意这种方法


我将采用这种方法

您可以按长度对整个列表进行排序,并将其用于输出:

data = ['abc', 'a','qwerty', 'cd'] 


s = sorted(data, key=len)    # sorted copy of your list
maxlen = len(s[-1])          # longest is last element in sorted list

for l in s:
    print(f"{l:>{maxlen}}")  # not padded, just printed out right aligned
输出:

     a
    cd
   abc
qwerty

您可以按长度对整个列表进行排序,并将其用于输出:

data = ['abc', 'a','qwerty', 'cd'] 


s = sorted(data, key=len)    # sorted copy of your list
maxlen = len(s[-1])          # longest is last element in sorted list

for l in s:
    print(f"{l:>{maxlen}}")  # not padded, just printed out right aligned
输出:

     a
    cd
   abc
qwerty

据我所知,这应该是解决问题的办法:


列表1=['aaaz'、'abc'、'a'、'qwerty'、'cd'、“XXXXXXXX CA”]
定义我的排序(数据):
反转=排序(数据,键=λx:x[::-1])
反向返回
max_len=max([len(s)表示列表_1中的s])
列表2=我的排序(列表1)
打印(列表2)
>>>['a','XXXXXXXX CA','abc','cd','qwerty','aaaz']

我知道字符串应该按字母顺序排列,但从右到左

据我所知,这应该是解决问题的办法:


列表1=['aaaz'、'abc'、'a'、'qwerty'、'cd'、“XXXXXXXX CA”]
定义我的排序(数据):
反转=排序(数据,键=λx:x[::-1])
反向返回
max_len=max([len(s)表示列表_1中的s])
列表2=我的排序(列表1)
打印(列表2)
>>>['a','XXXXXXXX CA','abc','cd','qwerty','aaaz']

我知道字符串应该按字母顺序排列,但从右到左

这不算是填充吗?你可以检查一下,有什么理由不使用填充吗?@SaiTeja:因为这是个问题吗?这不算是填充吗?你可以检查一下,有什么理由不使用填充吗?@SaiTeja:因为这是个问题?如果你想把它们打印到右边,你应该这样说。字符串没有任何固有的“对齐”。哦,不,我只想将它们排序到正确的对齐位置。很抱歉,不清楚!我不需要打印它们如果你想打印它们与右边对齐,你应该这样说。字符串没有任何固有的“对齐”。哦,不,我只想将它们排序到正确的对齐位置。很抱歉,不清楚!我不需要打印它们,如果有多个长度相同的字符串?@Scott排序是稳定的-如果它们具有相同的长度,它们将按原始顺序出现。如果要按长度排序,则需要按字母顺序将键更改为:
sorted(data,key=lambda x:(len(x),x)
所以它们按长度排序,然后按字母顺序排序-但这不是问题的一部分?-或者我忽略了什么?如果有多个相同长度的字符串?@Scott排序是稳定的-如果长度相同,它们将按原始顺序排序。如果要按长度排序,则需要按字母顺序排序将键改为:
sorted(data,key=lambda x:(len(x),x)
所以他们先按长度排序,然后按字母顺序排序-但这并不是问题的一部分?-或者我忽略了什么?