Python–差分排序字符串数字和字母
原文:https://www . geesforgeks . org/python-differential-sort-string-numbers-and-alphabets/
给定一个列表字符串,重新排序列表,排序的字母后面跟着排序的字符串。
输入:test _ list =【“1”、“G”、“10”、“L”、“9”、“K”、“4”】 输出:【‘G’、‘K’、‘L’、‘1’、‘4’、‘9’、‘10’】 说明:字母排序,按排序位数排序成功。
输入:test _ list =[“1”、“G”、“10”、“L”、“9”] 输出:[‘G’、‘L’、‘1’、‘9’、‘10’] 解释:字母排序,按排序后的数字排序成功。
方法#1:使用 isnumeric() +循环
在这种情况下,我们使用 isnumeric()将数字和字母字符分开,然后对每个列表执行排序,然后对两个列表执行连接以获得结果。仅适用于 1 位数的字符串。
Python 3
# Python3 code to demonstrate working of
# Differential Sort String Numbers and Alphabets
# Using isnumeric() + loop
# initializing list
test_list = ["1", "G", "7", "L", "9", "M", "4"]
# printing original list
print("The original list is : " + str(test_list))
numerics = []
alphabets = []
for sub in test_list:
# checking and inserting in respective container
if sub.isnumeric():
numerics.append(sub)
else:
alphabets.append(sub)
# attaching lists post sort
res = sorted(alphabets) + sorted(numerics)
# printing result
print("The Custom sorted result : " + str(res))
Output
The original list is : ['1', 'G', '7', 'L', '9', 'M', '4']
The Custom sorted result : ['G', 'L', 'M', '1', '4', '7', '9']
方法 2:使用 sorted() + isnumeric()
这是解决这个问题的一种线性方法,它使用 isnumeric 检查数字,并使用 sorted()执行 sort()。将元素转换为整数并进行测试,可以处理 1 位数以上的数字。
Python 3
# Python3 code to demonstrate working of
# Differential Sort String Numbers and Alphabets
# Using sorted() + isnumeric()
# initializing list
test_list = ["100", "G", "74", "L", "98", "M", "4"]
# printing original list
print("The original list is : " + str(test_list))
# using int() to type convert to integer
# using sorted() to perform sort operation
res = sorted(test_list, key = lambda ele: (ele.isnumeric(), int(ele) if ele.isnumeric() else ele))
# printing result
print("The Custom sorted result : " + str(res))
Output
The original list is : ['100', 'G', '74', 'L', '98', 'M', '4']
The Custom sorted result : ['G', 'L', 'M', '4', '74', '98', '100']
版权属于:月萌API www.moonapi.com,转载请注明出处