web-dev-qa-db-ja.com

Pythonで2つの文字列を減算するにはどうすればよいですか?

基本的にstr="lamp, bag, mirror,"(およびその他のアイテム)のようなリストである長い文字列があります

いくつかの項目を追加または削除できるかどうか、他のプログラミング言語では簡単にできるかどうか疑問に思っていました:str=str-"bag,"およびget str="lamp, mirror,"これはpython(I ' m(W8 pcで2.7を使用)

文字列を「バッグ」などに分割する方法はありますか、それを何らかの方法で減算として使用しますか?その後、追加する方法を理解する必要があります。

20
max smith

あなたもできる

print "lamp, bag, mirror".replace("bag,","")
38
Joran Beasley

これはどう?:

def substract(a, b):                              
    return "".join(a.rsplit(b))
25
Zaka Elab

整形式のlistsを使用している限り、これを行うことができます。

_s0 = "lamp, bag, mirror"
s = s0.split(", ") # s is a list: ["lamp", "bag", "mirror"]
_

リストが整形式でない場合は、@ Lattywareで提案されているように、次のようにできます。

_s = [item.strip() for item in s0.split(',')]
_

次に、要素を削除します。

_s.remove("bag")
s
=> ["lamp", "mirror"]
_

どちらの方法でも、文字列を再構築するには、join()を使用します。

_", ".join(s)
=> "lamp, mirror"
_

別のアプローチはreplace()を使用することですが、たとえば、_"mirror"_の末尾に_,_がないため、置換する文字列に注意してください。

_s0 = "lamp, bag, mirror"
s0.replace("bag, ", "")
=> "lamp, mirror"
_
11
Óscar López
from re import sub

def Str2MinusStr1 (str1, str2, n=1) :
    return sub(r'%s' % (str2), '', str1, n)

Str2MinusStr1 ('aabbaa', 'a')  
# result 'abbaa'

Str2MinusStr1 ('aabbaa', 'ab')  
# result 'abaa'

Str2MinusStr1 ('aabbaa', 'a', 0)  
# result 'bb'

# n = number of occurences. 
# 0 means all, else means n of occurences. 
# str2 can be any regular expression. 
1
Dengs

文字列を文字列のリストに変換してから、必要な処理を行う必要があります。見て

my_list="lamp, bag, mirror".split(',')
my_list.remove('bag')
my_str = ",".join(my_list)
1
dare

以下のような2つの文字列がある場合:

t1 = 'how are you'
t2 = 'How is he'

これらの2つの文字列を減算する場合は、次のコードを使用できます。

l1 = t1.lower().split()
l2 = t2.lower().split()
s1 = ""
s2 = ""
for i in l1:
  if i not in l2:
    s1 = s1 + " " + i 
for j in l2:
  if j not in l1:
    s2 = s2 + " " + j 

new = s1 + " " + s2
print new

出力は次のようになります。

あなたは彼ですか

1
Rohan Amrute

以下を使用して、削除する単語を追加できます(["bag", "mirror", ...]

(s0, to_remove) = ("lamp, bag, mirror", ["bag"])
s0 = ", ".join([x for x in s0.split(", ") if x not in to_remove])
=> "lamp, mirror"
0
J. Doe

正規表現の使用例:

import re

text = "lamp, bag, mirror"
Word = "bag"

pattern = re.compile("[^\w]+")
result = pattern.split(text)
result.remove(Word)
print ", ".join(result)
0
badc0re