Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在字符串中连接单词_Python_String_Python 2.7 - Fatal编程技术网

Python 在字符串中连接单词

Python 在字符串中连接单词,python,string,python-2.7,Python,String,Python 2.7,我有一个字符串列表,我想通过创建新的“字符串列表”来连接两个单词。然而,根据我的假设,在运行了一些代码之后,结果并不接近 text=['A'、'123'、'BCR'、'EF'、'RTY'、'B'、'123'、'VCR'、'EF'、'B'、'123'、'RRR'、'EF'、'RTY'] 代码 正如你所看到的,“EF”总是在“RTY”之前(到目前为止),但出于安全考虑,我正在扣除指数或位置。任何线索 问题中的答案已更新。字符串在python中是不可变的,您应该将连接结果重新分配给变量: text[a

我有一个字符串列表,我想通过创建新的“字符串列表”来连接两个单词。然而,根据我的假设,在运行了一些代码之后,结果并不接近

text=['A'、'123'、'BCR'、'EF'、'RTY'、'B'、'123'、'VCR'、'EF'、'B'、'123'、'RRR'、'EF'、'RTY']

代码

正如你所看到的,“EF”总是在“RTY”之前(到目前为止),但出于安全考虑,我正在扣除指数或位置。任何线索


问题中的答案已更新。

字符串在python中是不可变的,您应该将连接结果重新分配给变量:

text[a[l]] = text[a[l]]+text[b[m]]
输出:

['A', '123', 'BCR', 'EFRTY', 'RTY', 'B', '123', 'VCR', 'EF', 'B', '123', 'RRR', 'EFRTY', 'RTY']

字符串在python中是不可变的,您应该将连接结果赋回一个变量:

text[a[l]] = text[a[l]]+text[b[m]]
输出:

['A', '123', 'BCR', 'EFRTY', 'RTY', 'B', '123', 'VCR', 'EF', 'B', '123', 'RRR', 'EFRTY', 'RTY']

要将所有相邻的
'EF'
'RTY'
非重叠对连接到一个列表中:

L = ['A','123','BCR','EF','RTY','B','123','VCR','EF','B','123','RRR','EF','RTY']

result = []
pairs = iter(zip(L, L[1:]+['']))
for a, b in pairs:
    if a == 'EF' and b == 'RTY': # found adjacent
       a += b # join
       next(pairs, None) # skip the next a ('RTY')
    result.append(a)
L[:] = result # modify inplace
# -> ['A','123','BCR','EFRTY','B','123','VCR','EF','B','123','RRR','EFRTY']
要支持两个以上的单词:

seq = ["EF", "RTY", "B"]
pos = i = 0
while i < len(L):
    if L[i:i+len(seq)] == seq:
        L[pos] = "".join(seq)
        i += len(seq)
    else:
        L[pos] = L[i]
        i += 1
    pos += 1     
del L[pos:]
seq=[“EF”、“RTY”、“B”]
pos=i=0
而我
要将所有相邻的
'EF'
'RTY'
非重叠对连接在一个列表中,请执行以下操作:

L = ['A','123','BCR','EF','RTY','B','123','VCR','EF','B','123','RRR','EF','RTY']

result = []
pairs = iter(zip(L, L[1:]+['']))
for a, b in pairs:
    if a == 'EF' and b == 'RTY': # found adjacent
       a += b # join
       next(pairs, None) # skip the next a ('RTY')
    result.append(a)
L[:] = result # modify inplace
# -> ['A','123','BCR','EFRTY','B','123','VCR','EF','B','123','RRR','EFRTY']
要支持两个以上的单词:

seq = ["EF", "RTY", "B"]
pos = i = 0
while i < len(L):
    if L[i:i+len(seq)] == seq:
        L[pos] = "".join(seq)
        i += len(seq)
    else:
        L[pos] = L[i]
        i += 1
    pos += 1     
del L[pos:]
seq=[“EF”、“RTY”、“B”]
pos=i=0
而我
Python字符串是不可变的。所以你不能就地修改它们。预期的输出是什么?最后的
text
内容应该是什么?@HunterMcMillen是对的,你不能在适当的位置变异字符串,这在python中是不可能的。要清楚,
text
不是字符串,而是字符串列表。您正在尝试修改字符串吗?还是字符串列表?感谢您提供有关“字符串列表”的“不变性”的重要信息。那么,是否有可能创建一个新的“字符串列表”。原始字符串会发生什么变化?如果将最后一行更改为
text[a[l]+=text[b[m]
,您将得到
['a','123','BCR','EFRTY','RTY','b','123','VCR','EF','b','123','RRR','EFRTY','RTY']
。这不是一种有效的方法,但你可以做到。Python字符串是不可变的。所以你不能就地修改它们。预期的输出是什么?最后的
text
内容应该是什么?@HunterMcMillen是对的,你不能在适当的位置变异字符串,这在python中是不可能的。要清楚,
text
不是字符串,而是字符串列表。您正在尝试修改字符串吗?还是字符串列表?感谢您提供有关“字符串列表”的“不变性”的重要信息。那么,是否有可能创建一个新的“字符串列表”。原始字符串会发生什么变化?如果将最后一行更改为
text[a[l]+=text[b[m]
,您将得到
['a','123','BCR','EFRTY','RTY','b','123','VCR','EF','b','123','RRR','EFRTY','RTY']
。这不是一个有效的方法,但你能做到。谢谢Ashwini。非常接近,你真的指导了我。@LonelySoul很高兴这有帮助。:)谢谢阿什维尼。非常接近,你真的指导了我。@LonelySoul很高兴这有帮助。:)这是一个非常有趣的解决方案@J.F.Sebastian。但是,如果我想再添加一个单词,那么您将如何更改code@LonelySoul:我添加了支持两个以上单词的代码。如果您有多个序列,则可能希望将pos重置为“pos=I=0”。可能对某人有帮助。这是一个非常有趣的解决方案@J.F.Sebastian。但是,如果我想再添加一个单词,那么您将如何更改code@LonelySoul:我添加了支持两个以上单词的代码。如果您有多个序列,则可能希望将pos重置为“pos=I=0”。可能对某人有帮助。