按字母顺序枚举具有属性的文件列表

2024-04-23 19:42:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我试着按字母顺序列举两张单子。你知道吗

问题是一个 目前,我使用zip来执行以下操作:

lista = ['A', 'B', 'E', 'R']
listb = ['C', 'D', 'F', 'G']

for elt, (contenta, contentb) in enumerate(zip(lista, listb)):
    print('[{}] {}'.center(79).format(str(elt), contenta.name))
    print('[{}] {}'.center(79).format(str(elt), contentb))

现在的问题是lista有一个“.name”变量,这就是我想打印的,但是listb没有,我想直接打印listb(当然lista和listb只是用作示例)

所以我想得到的是:

                                    [0] A                                    
                                    [1] B                                    
                                    [1] C                                    
                                    [2] D                                    
                                    [3] E                                    
                                    [4] F   
                                    [5] G  
                                    [6] R

但我得到的是:

                                    [0] A                                    
                                    [0] C                                    
                                    [1] B                                    
                                    [1] D                                    
                                    [2] E                                    
                                    [2] F   
                                    [3] R  
                                    [3] G

我不知道该怎么解决这个问题?在保持数字一致的情况下,是否有办法对两个列表进行排序和枚举?同时按字母顺序排列?你知道吗


Tags: nameformatfor顺序字母zip单子center
2条回答

对它们进行排序lista + listbenumerate

lista = ['A', 'B', 'E', 'R']
listb = ['C', 'D', 'F', 'G']

for i, x in enumerate(sorted(lista + listb)):
    print(i, x)

# 0 A
# 1 B
# 2 C
# 3 D
# 4 E
# 5 F
# 6 G
# 7 R

它在listalistb的元素之间同时处理,因为您使用zip
所以,我建议先把一个列表排成一个列表,然后按字母顺序排序。你知道吗

lista = ['A', 'B', 'E', 'R']
listb = ['C', 'D', 'F', 'G']

listc = lista + listb
listc.sort()

for elt, content in enumerate(listc):
    print('[{}] {}'.center(79).format(str(elt), content))

结果是:

                                    [0] A                                    
                                    [1] B                                    
                                    [2] C                                    
                                    [3] D                                    
                                    [4] E                                    
                                    [5] F                                    
                                    [6] G                                    
                                    [7] R  

相关问题 更多 >