Python 3.x 函数;加入;及;“拆分”;必须显示单词[5:6]和[10]

Python 3.x 函数;加入;及;“拆分”;必须显示单词[5:6]和[10],python-3.x,Python 3.x,我的代码中有以下连接 (' '.join(s.split()[10:14]) 但我也想打印word[16],我试过“and”、“+”等,但运气不好 希望有人能帮助我:-)这里有一种方法: >>> s = 'But i also want to print word [16], i have tried "and", "+" etc. but no luck Hope somebody can help me :-)' >>> a = s.split() &g

我的代码中有以下连接

(' '.join(s.split()[10:14])
但我也想打印word[16],我试过“and”、“+”等,但运气不好
希望有人能帮助我:-)

这里有一种方法:

>>> s = 'But i also want to print word [16], i have tried "and", "+" etc. but no luck Hope somebody can help me :-)'
>>> a = s.split()
>>> print(' '.join([*a[10:14],a[16]]))
tried "and", "+" etc. luck

有一种方法可以做到这一点:

>>> s = 'But i also want to print word [16], i have tried "and", "+" etc. but no luck Hope somebody can help me :-)'
>>> a = s.split()
>>> print(' '.join([*a[10:14],a[16]]))
tried "and", "+" etc. luck

您可以在分别提取两个字符串后将它们连接起来。

示例字符串:

s = '1  2  3 4 5 6  7  8  9  10 11 12  13 14 15 16 17 18 19'

' '.join(s.split()[10:14]) + ' ' + s.split()[15]
此外,正如@blhsing所指出的,这里可能不需要第二个连接,只有split的第16个元素可以作为字符串添加。还在两个字符串之间添加了空格

输出:

Out[19]: '11 12 13 14 16

您可以在分别提取两个字符串后将它们连接起来。

示例字符串:

s = '1  2  3 4 5 6  7  8  9  10 11 12  13 14 15 16 17 18 19'

' '.join(s.split()[10:14]) + ' ' + s.split()[15]
此外,正如@blhsing所指出的,这里可能不需要第二个连接,只有split的第16个元素可以作为字符串添加。还在两个字符串之间添加了空格

输出:

Out[19]: '11 12 13 14 16

您可以通过
操作符.itemgetter
方法使用多个
slice
对象,并使用
itertools.chain.from\u iterable
连接切片,这样您就不必将同一字符串拆分两次或将拆分结果存储在临时变量中:

from operator import itemgetter
from itertools import chain
print(' '.join(chain.from_iterable(itemgetter(slice(10, 15), slice(16, 17))(s.split()))))

您可以通过
操作符.itemgetter
方法使用多个
slice
对象,并使用
itertools.chain.from\u iterable
连接切片,这样您就不必将同一字符串拆分两次或将拆分结果存储在临时变量中:

from operator import itemgetter
from itertools import chain
print(' '.join(chain.from_iterable(itemgetter(slice(10, 15), slice(16, 17))(s.split()))))

请加一个例子。
s
的值是多少?您想打印什么?您所说的
word[16]
是什么意思?
+
怎么不起作用,你是用了
s.split()[10:14]+[16]
还是
s.split()[10:14]+[s.split()[16]]
?我想OP想要一个字符串的第五、第六和第十个字。最简单的方法是通过中间变量;你不能用<代码>和或<代码> +< /代码> .@ toBiasik,更准确地说,<代码> [10:14] < /Cord>给你第十一、第十二、第十三和第十四个字,而不是第十、第十一、第十二和第十三个字。@布莱辛,如果你把索引0的元素考虑到第一个而不是第0个,那么是的,但是谁呢?请添加一个示例。
s
的值是多少?您想打印什么?您所说的
word[16]
是什么意思?
+
怎么不起作用,你是用了
s.split()[10:14]+[16]
还是
s.split()[10:14]+[s.split()[16]]
?我想OP想要一个字符串的第五、第六和第十个字。最简单的方法是通过中间变量;你不能用<代码>和或<代码> +< /代码> .@ toBiasik,更准确地说,<代码> [10:14] < /Cord>给你第十一、第十二、第十三和第十四个字,而不是第十、第十一、第十二和第十三个字。@布莱辛,如果你把索引0的元素考虑到第一个而不是第0个,那么是的,但是谁呢?p效果!:-)就像我想要的那样。join(s.split()[16])实际上一个字符接一个字符地连接第17个单词,这实际上不是你想要的,特别是如果你想用空格连接字符串。@blhsing,谢谢你指出这一点。。更新了我的答案以反映,还添加了用于加入的
空间。然而,我猜@Metroll只需要一个提示&他知道如何修改它以得到他所需要的。@ParvBanks这仍然给出了错误的结果,因为
'.join(s.split()[15])
将字符串
s.split()[15]
视为一个字符序列,因此最后第16个单词的每个字符都用空格隔开。而且,使用这种方法,第14个单词和第16个单词之间不会有空格。是的,我注意到。。我已经改正了。。谢谢:)太好了!:-)就像我想要的那样。join(s.split()[16])
实际上一个字符接一个字符地连接第17个单词,这实际上不是你想要的,特别是如果你想用空格连接字符串。@blhsing,谢谢你指出这一点。。更新了我的答案以反映,还添加了用于加入的
空间。然而,我猜@Metroll只需要一个提示&他知道如何修改它以得到他所需要的。@ParvBanks这仍然给出了错误的结果,因为
'.join(s.split()[15])
将字符串
s.split()[15]
视为一个字符序列,因此最后第16个单词的每个字符都用空格隔开。而且,使用这种方法,第14个单词和第16个单词之间不会有空格。是的,我注意到。。我已经改正了。。谢谢:)或者这个:
(lambda x:x[10:14]+[x[16]])(s.split())
:或者这个:
(lambda x:x[10:14]+[x[16]])(s.split())
:D