Python:我有一个一维列表,其结构如下(每个条目都是一串由空格分隔的整数):
vals = ["121",
"121 122",
"122",
"122 124",
"150",
"171",
"49",
"49 122",
"49 122" "124",
"49 122" "516",
"51",
"51 122",
"516",
"8",
"8 122" "516",
"8 124",
"8 171",
"8 49",
"8 49" "124",
"8 49" "516",
"8 51",
"8 51" "122",
"8 516",
"878",
]
但是我正在寻找关于行和列顺序中每个整数的排序顺序,即预期的输出是
vals = [
"8",
"8 49",
"8 49 124",
"8 49 516",
"8 51",
"8 51 122",
"49",
"49 122",
"49 122 124",
"49 122 516",
"51",
"51 122",
"121",
"121 122",
"122",
"122 124",
"150",
"171",
"516",
"878",
]
我已经尝试使用sort()
以及sorted()
机制,但是似乎没有任何作用sort_len = list1.sort(key = int)
->由于每个列表都是由字母分隔的字符串,因此这将引发值错误。
我想按行值(即,行中的第一个整数)对该列表进行排序(并且如果具有相同的行值,即,相同的第一个整数,则转到下一个列)
诀窍是将每个字符串转换为整数元组。
print(sorted(vals, key = lambda y: tuple(int(x) for x in y.split())))
['8', '8 49', '8 49 124', '8 49 516', '8 51', '8 51 122', '8 122 516', '8 124', '8 171', '8 516', '49', '49 122', '49 122 124', '49 122 516', '51', '51 122', '121', '121 122', '122', '122 124', '150', '171', '516', '878']
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句