Python 如何使用列表理解在元组中的单词中切换两个字母?

Python 如何使用列表理解在元组中的单词中切换两个字母?,python,list-comprehension,Python,List Comprehension,我有一个元组列表,其中包含已拆分的单词: split_l = [('', 'eta'), ('e', 'ta'), ('et', 'a'), ('eta', '')] 我想把单词eta在第一个元组的右边的位置分成两个新词 代码: 预期结果: switch_l = ['tea', 'eat'] 当前结果: switch_l = ['ta', 'ea'] 例如,取e并将其与t交换将产生tea。然后用a交换t,生成eat。如果元组最右边的元素具有len()>2,则应进行交换。我认为初始逻辑对于列

我有一个元组列表,其中包含已拆分的单词:

split_l = [('', 'eta'), ('e', 'ta'), ('et', 'a'), ('eta', '')]
我想把单词
eta
在第一个元组的右边的位置分成两个新词

代码:

预期结果:

switch_l = ['tea', 'eat']
当前结果:

switch_l = ['ta', 'ea']

例如,取
e
并将其与
t
交换将产生
tea
。然后用
a
交换
t
,生成
eat
。如果元组最右边的元素具有len()>2,则应进行交换。

我认为初始逻辑对于列表理解不正确。要查找包含两个长度至少为1的字符串的元组对,并分别交换第一个和第二个字符串的最后一个和第一个字符:

switch_L = [L[:-1] + R[0] + L[-1] + R[1:] for L,R in split_l if len(L) > 0 and len(R) > 0]

我认为最初的逻辑不适合你对清单的理解。要查找包含两个长度至少为1的字符串的元组对,并分别交换第一个和第二个字符串的最后一个和第一个字符:

switch_L = [L[:-1] + R[0] + L[-1] + R[1:] for L,R in split_l if len(L) > 0 and len(R) > 0]

这里的逻辑是什么?例如,取
e
并将其与
t
交换将产生
tea
。然后用
a
交换
t
,生成
eat
。如果元组最右边的元素有一个
len()>2
,则应该进行交换。这里的逻辑是什么?例如,取
e
并用
t
交换它将产生
tea
。然后用
a
交换
t
,生成
eat
。如果元组最右边的元素具有
len()>2
,则应进行交换。