我想按顺序打印数组的项目(字符串)。顺序是包含最小数字的字符串将首先打印,等等。
我想对数组字符串中的最大整数使用max number变量,但是我不确定如何使用。
伪代码:
array = ['Tom 7','Thomas 3','Toby 2','Dominic 4','Henry 7']
maxnumber = #largest integer in the arrays strings
for i in array:
for n in in range(0,maxnumber)
if n in array[i]:
print(array[i])
答案 0 :(得分:2)
您可以将sorted
与lambda
函数一起使用,以根据每个项目中数字的值对项目进行排序
>>> array = ['Tom 7','Thomas 3','Toby 2','Dominic 4','Henry 7']
>>> ordered = sorted(array, key=lambda i: int(i.split()[1]))
>>> ordered
['Toby 2', 'Thomas 3', 'Dominic 4', 'Tom 7', 'Henry 7']
答案 1 :(得分:0)
如果数字可以出现在字符串的任何位置,则可以使用正则表达式查找它们。
fundCode_raw = ['FUND1','FUND2','FUNDETC']
fundCode_str = '_'.join(fundCode_raw)
>> fundCode_str
'FUND1_FUND2_FUNDETC'
这将输出:
import re
array = ['Tom 7','Thomas 3','Toby 2','Dominic 4','Henry 7']
for i in sorted(array, key=lambda s: int(re.findall(r'\d+', s)[0])):
print(i)