我试图用列表理解在一行中编写一个4-5行代码。但是这里的问题是我不能使用insert函数,所以我想知道是否有解决这个问题的方法?你知道吗
原始代码:
def order(text):
text = text.split()
for x in text:
for y in x:
if y in ('1','2','3','4','5','6','7','8','9'):
final.insert(int(y)-1, x)
return final
到目前为止,我尝试了:
return [insert(int(y)-1, x) for x in text.split() for y in x if y in ('1','2','3','4','5','6','7','8','9')]
但我面临以下错误:
名称错误:未定义全局名称“insert”
我尝试使用insert,因为任务是使用每个单词中出现的数字重新排列列表中的项目。你知道吗
例如,我有is2 Th1is T4est 3a
作为输入,结果应该是:Th1is is2 3a T4est
您可以通过将代码拆分为几个简单的函数来实现您的原始想法,并创建一个适当大小的列表(用
None
填充)来保存单词的最终顺序:您也可以使用
sorted()
在一行中执行此操作:与其使用列表理解,不如在key函数中使用这些数字来
sort
列表,例如使用正则表达式提取数字。你知道吗相关问题 更多 >
编程相关推荐