我有一个像这样的字符串列表:
l = ['car58=C:/Files/SB.car58- 094.38.JPG',
'bike53=C:/Files/SB.bike53- 006.33.JPG',
'car46=C:/Files/SB.car46- 88.22.JPG',
'bike12=C:/Files/SB.bike12- 006.33.JPG',
'acc9=C:/Files/SB.acc9- 006.33.JPG']
我正在尝试使用每个字符串的开头(位置0)对列表进行排序,直到“=”字符,忽略其后的所有字符,以便结果为:
s = ['acc9=C:/Files/SB.acc9- 116.95.JPG',
'bike12=C:/Files/SB.bike12- 006.33.JPG',
'bike53=C:/Files/SB.bike53- 002.12.JPG',
'car46=C:/Files/SB.car46- 88.22.JPG',
'car58=C:/Files/SB.car58- 094.38.JPG']
编辑: Ajax1234提供的答案解决了我的问题:
s = sorted(l, key=lambda x:x[:x.index('=')])
答案 0 :(得分:1)
您可以使用.index()
:
s = [['car58=C:/Files/SB.car58- 094.38.JPG'],
['bike53=C:/Files/SB.bike53- 006.33.JPG'],
['car46=C:/Files/SB.car46- 88.22.JPG'],
['bike12=C:/Files/SB.bike12- 006.33.JPG'],
['acc9=C:/Files/SB.acc9- 006.33.JPG']]
new_s = sorted(s, key=lambda x:x[0][:x[0].index('=')])
输出:
[['acc9=C:/Files/SB.acc9- 006.33.JPG'], ['bike12=C:/Files/SB.bike12- 006.33.JPG'], ['bike53=C:/Files/SB.bike53- 006.33.JPG'], ['car46=C:/Files/SB.car46- 88.22.JPG'], ['car58=C:/Files/SB.car58- 094.38.JPG']]
编辑:list.sort()
也会产生所需的输出:
s.sort()
print(s)
输出:
[['acc9=C:/Files/SB.acc9- 006.33.JPG'], ['bike12=C:/Files/SB.bike12- 006.33.JPG'], ['bike53=C:/Files/SB.bike53- 006.33.JPG'], ['car46=C:/Files/SB.car46- 88.22.JPG'], ['car58=C:/Files/SB.car58- 094.38.JPG']]
关于你最近的评论,这应该有效:
s = ['car58=C:/Files/SB.car58- 094.38.JPG', 'bike53=C:/Files/SB.bike53- 006.33.JPG', 'car46=C:/Files/SB.car46- 88.22.JPG', 'bike12=C:/Files/SB.bike12- 006.33.JPG', 'acc9=C:/Files/SB.acc9- 006.33.JPG']
new_s = sorted(s, key=lambda x:x[:x.index('=')])
输出:
['acc9=C:/Files/SB.acc9- 006.33.JPG', 'bike12=C:/Files/SB.bike12- 006.33.JPG', 'bike53=C:/Files/SB.bike53- 006.33.JPG', 'car46=C:/Files/SB.car46- 88.22.JPG', 'car58=C:/Files/SB.car58- 094.38.JPG']
答案 1 :(得分:0)
对列表使用列表的方法sort()
进行排序:
l = ['car58=C:/Files/SB.car58- 094.38.JPG',
'bike53=C:/Files/SB.bike53- 006.33.JPG',
'car46=C:/Files/SB.car46- 88.22.JPG',
'bike12=C:/Files/SB.bike12- 006.33.JPG',
'acc9=C:/Files/SB.acc9- 006.33.JPG']
# sort list in place
l.sort()
print('\n'.join(l))
将打印:
acc9=C:/Files/SB.acc9- 006.33.JPG
bike12=C:/Files/SB.bike12- 006.33.JPG
bike53=C:/Files/SB.bike53- 006.33.JPG
car46=C:/Files/SB.car46- 88.22.JPG
car58=C:/Files/SB.car58- 094.38.JPG