如何在python中对一串衣服尺寸(s、m、l、xl、xxl)进行排序

nom7f22z  于 2021-09-08  发布在  Java
关注(0)|答案(3)|浏览(370)

关闭。这个问题需要详细或明确。它目前不接受答案。
**想改进这个问题吗?**编辑这篇文章,添加细节并澄清问题。

昨天关门了。
改进这个问题
我想对字符串进行排序:

s = "x x m l s xl xl xxl xl m x s l l m m”

我试过了,但没能做到。希望输出如下字符串所示:
输出:大小顺序如下

s s m m m m l l l x x xl ..... so on
7gcisfzg

7gcisfzg1#

你可以定义你自己的 custom_order 用于分类。

s = 'x x m l s xl xl xxl xl m x s l l m m'

custom_order = {
    's': 1,
    'm': 2,
    'l': 3,
    'x': 4,
    'xl': 5,
    'xxl': 6,
}
result = ' '.join(sorted(s.split(' '), key=lambda x: custom_order[x]))

或者按照@kaya的建议,您可以进一步简化代码:

result = ' '.join(sorted(s.split(' '), key=custom_order.get))
2vuwiymt

2vuwiymt2#

这里有一个潜在的解决方案:

SIZE_ORDER = ['xxxs', 'xxs', 'xs', 's', 'm', 'l', 'x', 'xl', 'xxl', 'xxxl']
sizes = "x x m l s xl xl xxl xl m x s l l m m"
sorted_sizes = sorted(sizes.split(' '), key=lambda size: SIZE_ORDER.index(size.lower()))
print(sorted_sizes)

# ['s', 's', 'm', 'm', 'm', 'm', 'l', 'l', 'l', 'x', 'x', 'x', 'xl', 'xl', 'xl', 'xxl']
x7rlezfr

x7rlezfr3#

1-必须将str值添加到列表中:

str_list = []
str= "x x m l s xl xl xxl xl m x s l l m m"
for i in str:
    if i !=' ':
        str_list.append(i)
print(str_list)
    ['x', 'x', 'm', 'l', 's', 'x', 'l', 'x', 'l', 'x', 'x', 'l', 'x', 'l', 'm', 'x', 's', 'l', 'l', 'm', 'm']

2-对列表的值进行排序:

str_list.sort()

    print(str_list)

    ['l', 'l', 'l', 'l', 'l', 'l', 'l', 'm', 'm', 'm', 'm', 's', 's', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x']

相关问题